스프링 애너테이션?
DI나 AOP 같은 기능은 따로 XML파일로 설정한 후 애플리케이션에서 사용했습니다. 그러나 애플리케이션의 기능이 복잡해짐에 따라 XML설정파일의 내용도 복잡해졌고 관리에도 문제가 생기기 시작했습니다. 따라서 XML에서 설정하는 방법과 애너테이션 기능을 사용하는 방법 두가지를 혼합해서 사용하고 있습니다.
<context:component-scan> 태그
<context:component-scan> 태그를 사용해 패키지 이름을 지정하면 애플리케이션 실행시 해당 패키지에서 애너테이션으로 지정된 클래스를 빈으로 만들어 줍니다.
애너테이션 | 기능 |
@Controller | 스프링 컨테이너가 component-scan에 의해 지정한 클래스를 컨트롤러 빈으로 자동 변환 |
@Service | // 서비스빈으로 자동변환 |
@Repository | // DAO빈으로 자동변환 |
@Component | // 빈으로 자동변환 |
매서드에 @RequestParam 적용하기
지금까지는 브라우저에서 매개변수를 전송하면 getParameter()매서드를 이용해 값을 얻었습니다. 그런데 전송되어 온 매개변수의 수가 많아지면 일일이 getParameter()매서드를 이용하는 방법은 불편합니다. 이번에는 @RequestParam을 메서드에 적용해 쉽게 값을 얻는 방법을 알아보겠습니다.
public ModelAndView login(@RequestParam("userID") String userID, @RequestParam("userName") String userName, HttpServletRequest request, HttpServletResponse response)
- required 속성을 이용하면 반드시 전달해야 하는 필수 매개변수인 경우와 그렇지 않을 경우를 설정할 수 있습니다.
@Autowired 이용해 빈 주입하기
기존 XML 파일에서 각각의 빈을 DI로 주입했던 기능을 코드에서 애너테이션으로 자동으로 수행합니다. @Autowired를 사용하면 별도의 setter나 생성자 없이 속성에 빈을 주입할 수 있습니다.
@Controller("memberController")
public class MemberControllerImpl implements MemberController{
@Autowired
private MemberService memberService;
@Autowired
private MemberVO memberVO;
...
메이븐?
스프링이 나온 초기에는 버전이 자주 업데이트 됨에 따라 불편함이 따랐습니다. 업데이트 할 때마다 관련기능의 라이브러리를 일일이 수정해야 했고, 라이브러리 기능이 달라지면 소스도 같이 수정해 주어야 해서 불편했습니다. 그래서 현재는 메이븐과 같은 도구를 이용해 자동으로 스프링의 라이브러리 기능을 관리하도록 메이븐을 사용합니다.
메이븐 기반 웹 프로젝트 기본 디렉터리 구조
구성요소 | 설명 |
pom.xml | 프로젝트 정보가 표시되며 스프링에서 사용되는 여러가지 라이브러리를 설정해 다운로드 할 수 있습니다. |
src/main/java | 자바 소스 파일이 위치합니다. |
src/main/resources | 프로퍼티 파일이나 XML파일등 리소스 파일이 위치합니다. |
src/main/webapp | WEB-INF 등 웹 애플리케이션 리소스가 위치합니다. |
src/test/java | JUnit등 테스트 파일이 위치합니다. |
src/test/resources | 테스트 시에 필요한 resource 파일이 위치합니다. |
'Programming > Java' 카테고리의 다른 글
(SpringFrameWork) Dependency 오류 시 봐야할것. dependencies could not be resolved (0) | 2022.01.20 |
---|---|
[완독정리] 자바웹을 다루는 기술 5(스프링부트)- 길벗 (0) | 2021.02.15 |
[완독정리] 자바웹을 다루는 기술 3(스프링, 마이바티스)- 길벗 (0) | 2021.02.09 |
[완독정리] 자바웹을 다루는 기술 1- 길벗 (0) | 2021.02.09 |
[완독정리] 자바웹을 다루는 기술 2(스프링)- 길벗 (0) | 2021.02.09 |