@ 어노테이션방식
-> 대부분 프레임워크는 XML설정이 매우 중요
-> XML설정 과도하게 설정되면 내용이 많아지고 부담스러워짐
-> 대부분프레임워크가 XML방식외에 어노테이션 방식을 지원
@ 의존성 주입 설정
## @Autowired ##
-> 주로 변수 위에 설정하여 해당 타입의 객체를 찾아서 자동으로 할당
## @Qualifier ##
-> 특정 객체의 이름을 이용해서 의존성을 주입 할 때 사용
## @Inject ##
-> @Autowired와 동일한 기능
-> @Autowired는 스프링 전용, Inject는 자바 전용
## @Resource ##
-> @Autowired 와 @Qualifier의 기능을 결합한 어노테이션
@추가어노테이션
-> Controller, Service, Dao를 new 를 통하여 객체를 만들었고,
매번 요청마다 new를 통해 객체를 만들어 리소스 낭비가 심함
-> 어노테이션을 사용하면 객체를 매번 만들 필요가 없음
-> @Component를 통해서 객체를 생성하는데 역할 구분을 위해 다른이름의
어노테이션이 존재
@Controller
-> 사용자 요청을 제어하는 Controller 클래스
@Service
-> 비지니스 로직을 처리하는 Service 클래스
@Repository
-> 데이터 베이스 연동을 처리하는 DAO 클래스
1. src ->main -> webapp index.jsp 만듬!
2. src -> main -> webapp -> WEB-INF web.xml
web.xml 파일에 하나씩 등록해준다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/appServlet/servlet-context.xml
classpath:applicationContext3.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>Dependency</display-name>
<servlet-name>Dependency</servlet-name>
<servlet-class>org.kh.spring.controller.DependencyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Dependency</servlet-name>
<url-pattern>/dependency</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>Dependency2</display-name>
<servlet-name>Dependency2</servlet-name>
<servlet-class>org.kh.person.controller.Dependency2Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Dependency2</servlet-name>
<url-pattern>/dependency2</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>BeanTest</display-name>
<servlet-name>BeanTest</servlet-name>
<servlet-class>org.kh.bean.test.BeanTestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BeanTest</servlet-name>
<url-pattern>/beanTest</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>BeanTest2</display-name>
<servlet-name>BeanTest2</servlet-name>
<servlet-class>org.kh.bean.test.BeanTestServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BeanTest2</servlet-name>
<url-pattern>/beanTest2</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>BeanTest3</display-name>
<servlet-name>BeanTest3</servlet-name>
<servlet-class>org.kh.bean.test.BeanTestServlet3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BeanTest3</servlet-name>
<url-pattern>/beanTest3</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>BeanTest4</display-name>
<servlet-name>BeanTest4</servlet-name>
<servlet-class>org.kh.bean.test.BeanTestServlet4</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BeanTest4</servlet-name>
<url-pattern>/beanTest4</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>BeanTest5</display-name>
<servlet-name>BeanTest5</servlet-name>
<servlet-class>org.kh.bean.test.BeanTestServlet5</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BeanTest5</servlet-name>
<url-pattern>/beanTest5</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>AnoTest</display-name>
<servlet-name>AnoTest</servlet-name>
<servlet-class>org.kh.test.ano.AnoTestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AnoTest</servlet-name>
<url-pattern>/anoTest</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>Computer</display-name>
<servlet-name>Computer</servlet-name>
<servlet-class>org.kh.test.ano.ComputerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Computer</servlet-name>
<url-pattern>/computer</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>Computer2</display-name>
<servlet-name>Computer2</servlet-name>
<servlet-class>org.kh.exam.Computer2Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Computer2</servlet-name>
<url-pattern>/Computer2</url-pattern>
</servlet-mapping>
</web-app>
'이공계전문기술연수 > Spring Framework' 카테고리의 다른 글
<이공계기술전문연수> 1. Framework 특징 (0) | 2019.11.19 |
---|---|
<이공계기술전문연수> Spring MVC (0) | 2019.11.11 |
<이공계기술전문연수> Maven 설정 (0) | 2019.11.11 |
<이공계기술전문연수> Maven 특징 / Spring framework 특징 (0) | 2019.11.04 |
<이공계기술전문연수> mybatis 설정 / mybatis 특징 (0) | 2019.11.03 |