@Autowired
의존성을 주입해서 자동으로 객체를 생성해주며 메서드 위에 사용할 경우 기본 생성자를 만들어줌.
의존성 주입시 주입하고자 하는 객체의 타입이 일치하는지 먼저 검사한 후, 객체를 자동으로 주입함.
빈 객체가 존재하지 않거나 또는 2개 이상 존재 할 경우 스프링이 예외 발생.
@Bean
객체를 의미함. Spring Container에서 bean을 등록하도록 하는 어노테이션
@bean : 개발자가 직접 제어 불가능한 외부 라이브러리 등을 만들 때 사용
@component : 개발자가 직접 작성한 class 를 bean 으로 등록하기 위해 사용
@Before
어드바이스 타겟 메서드가 호출 되기 전에 어드바이스 기능을 수행한다.
@Component
Spring이 관리하는 모든 component에 대한 기본 스테레오 타입.
Class를 bean 으로 등록함.
어노테이션이 적용된 클래스를 빈으로 등록함.
디폴트로 singletone 이며 @Scope를 사용하여 지정할 수 있음.
@ComponentScan
@componenet로 정의된 설정을 스캔하여 설정함.
@ConfigurationProperites
Yaml 파일을 읽음. 디폴트로 스프링 부트 설정파일인 classpath.application.properties파일이 조회됨. 속성 클래스를 따로 만들어 두고 그 위에 prefix=”x” 써서 접두사를 사용할 수도 있음.
@Configuration
@Bean을 해당 클래스의 메서드에 적용하면 @Autowired로 빈을 부를 수 있다.
해당 클래스가 환경설정 이라는 것을 인식시킨다.
@Controller
컨트롤러 객체임을 명시. ClassPath 스캔을 통해 자동으로 감지됨.
Spring MVC 의 controller 클래스 선언을 단순화 시켜줌.
스플이 컨트롤러, 서블릿을 상속 할 필요가 없으며 등록된 클래스 파일에 대한 bean을 자동으로 생성함.
@ControllerAdvice
전역 예외 핸들러로 사용되며 @ExceptionHandler와 같이 사용됨.
@Data
Class 의 set/get 메서드 자동 생성
@EnableAutoConfiguration
메인 클래스에 위치하면 이것은 묵시적으로 패키지 탐색의 베이스를 지정함.
스프링 어플리케이션 컨텍스트를 만들 때 자동으로 설정하는 기능을 킴.
설정의 자동 탐색 지점 설정
@EnableTransactionManagement
Java config를 위한 어노테이션중 하나임.
어노테이션 기반으로 트랜잭션을 활성화함.
@EnableWebMvc
환경설정 파일에서 사용함.
Spring 에서는 내부적으로 환경설정 클래스로 등록해서 spring mvc 환경을 구성하게됨.
@EntityScan
@entity로 정의된 설정을 스캔하여 설정.
@Inject
어플리케이션에서 필요로 하는 자원을 자동으로 연결할 때 사용
@ Autowired와 같은 타입을 이용하여 자원을 연결할 때에 사용
특정 Framework에 종속되지 않은 어플리케이션을 구성하기 위할 때에 사용. 프로젝트를 스프링에서 다른 프레임워크로 이동할 경우에 사용됨.
@Getter
Class의 get 메서드를 자동 생성
@GetMapping
@RequestMapping(Method=RequestMethod.GET)과 같음.
http head에 담아 보내기 때문에 용량 제한 있음.
@Log4j2
로깅 프레임 워크 제공
해당 어노테이션을 클래스에 선언하게 되면 변수가 내부적으로 성되며 실제 선언되어 있지 않아도 log 변수 메서드에 접근할 수 있다.
@Mapper
Mybatis 에서 사용되는 Mapper 클래스를 명시할 때 사용
Interface 클래스를 통해 sql 을 컨트롤 할 수 있음
@MappedJdbcTypes
커스텀 타입에 대해서 오버라이딩을 할 경우 TypeHandler 인터페이스를 구현
TypeHandler 클래스에서 관련된 JDBC 타입의 목록을 정의하였음을 명시.
JdbcType속성도 함께 정의 되어 있다면 @MapperJdbcTyopes는 무시됨.
@MapperScan
Mapper.xml 파일들이 바라 볼 기본 패키지 위치를 지정해주는 어노테이션.
Mapper 인터페이스를 자동으로 스캐닝 하고 등록함.
@ModelAttribute
화면에 전달된 쿼리스트링이나 폼 데이터를 모델에자동으로 할당할 때에 @ModelAttribute는 데이터가 바인딩 된 객체를 View 에서 재사용되어야 할 필요가 있을 때 사용.
@Override
상위 클래스에서 오버라이드 한 메서드라는 것을 설명해주는 어노테이션.
상위클래스에 정의되지 않은 메서드에 쓰는 경우 컴파일 에러가 나기 때문에 혹시나 발생할 수 있는 에러 소지를 방지해주는 역할.
@PathVariable
URL의 일부를 파라미터 혹은 변수로 사용
@PostMapping
등록할 때 사용함. http body에 담아 보냄.
@PutMapping
수정할 때 사용
@RestController
@Controller + @ResponseBody를 합친 어노테이션으로 메서드의 반환 결과를 json 형태로 반환함.
@Controller 는 api와 view 를 동시에 사용 하는 경우에 사용함. View return 이 목적
@RestController는 view가 필요 없는 api만 지원하는 서브에서 사용함 (spring4.0부터 제공)
@RequestMapping
요청 URL을 어떤 메서드가 처리할 것인지 매핑해주는 어노테이션.
라우팅 정보를 제공하며 선언한 경로의 값에 따라 HTTP 요청이 해당 메서드에 매핑되어야 하는 것을 스프링에 알림.
@RequestBody
적용된 파라미터는 HTTP Request Body의 내용이 전달됨.
@RequestParam
Key =value 형태로 화면에서 넘어오는 쿼리스트링 또는 폼 데이터를 메서드 파라미터로 지정함.
@Resource
@Autowired와 마찬가지로 빈 객체 주입을 해주는데 차이점은 autowired 는 타입으로 연결 시키고 esourece는 이름으로 연결해준다.
@Repository
일반적으로 DAO에 사용
어떤 크래스가 그 역할을 충족시켯거나 레파지토리의 stereotype 이라는 표시
@ResponseStatus
요청 클라이언트에게 전달할 응답상태코드값을 지정하며 기본 값은 200ok 응답코드가 반환됨.
@RestControllerAdvice
@ControllerAdvice의 기능에 body 값을 전달 할 수 있게 해주는 어노테이션
@Scope
스프링은 기본적으로 빈의 범위를 “singletone” 으로 설정함.
Singletone이 아닌 다른 범위를 지정하고 싶다면 @Scope어노테이션을 이용햐여 범위를 지정할 수 있음.
@Service
Class는 비즈니스 로직이 들어가는 service로 등록
@Autowired 는 @Service에 등록된 변수명과 같아야 하며 @Service에 있는 @Autowired @Repository에 등록된 변수명이 같아야함.
@Setter
클래스 내 모든 필드의 setter 메서드를 자동으로 생성함.
Lombok 라이브러리에 의해 setter 메서드를 지원함.
@SessionAttributes
세션상에서 model의 정보를 유지하고 싶을 경우 사용함.
@ServletComponentScan
서블릿 컴포넌트(필터,서블릿,리스너)를 스캔 및 등록하며 이 과정은 내장 웹 서버를 사용하는 경우에만 동작함.
필터 = @WebFilter
서블릿=@WebServlet
리스너=@WebListener
@SpringBootApplication
@Configuration, @EanableAutoConfiguration, @ComponentScan 3가지를 하나의 annotation으로 합친 것.
@Configuration : 해당 클래스가 설정 파일임을 스프링 워크에서 알려주는 용도. 자바 기반의 설정을 선언할 수 있음.
@EnableAutoConfiguration : 스프링부트의 장점은 자동구성인데 해당 어노테이션을 활성화하면 스프링의 다양한 설정이 자동으로 완료됨.
@ComponentScan : 자동으로 컴포넌트 클래스를 검색하고 검색된 컴포넌트 및 빈 클래스를 어플리케이션 컨텍스트에 등록하는 역할을 함. 메인 클래스가 위치한 루트 패키지부터 이하 모든 클래스를 검색하여 bean으로 등록함.
@Value
properties에서 값을 가져와 적용할 때 사용
@Transactional
데이터 베이스 트랜잭션을 해당 메서드에 적용.
DB 에 엑세스하는 여러 연산을 하나의 트랜잭션으로 처리하여 오류가 발생 한 경우 롤백을 도와주는 것.
@WebFilter
Filter를 등록하고 설정하는 어노테이션
태그를 통해 사용하던 설정 모두를 지원함
'개발 공부 > Spring' 카테고리의 다른 글
[Spring]스프링 MVC 프로젝트의 기본 구성 (0) | 2021.07.16 |
---|---|
[Spring]Hikari CP(Connection Pool) (0) | 2021.07.13 |
[Spring]스프링 MVC의 기본 구조 (0) | 2021.07.10 |