본문 바로가기
IT/Spring

[Spring] - 스프링 개념 정리(DI, IOC, AOP)

by 차이나는 개발자 2020. 8. 13.
728x90
반응형

#스프링 개념 정리(DI, IOC, AOP)

-Java 기반 응용 프로그램 개발 프레임워크

 

#특징

-POJO

-IoC

-DI

-AOP

-데이터베이스 라이브러리 지원

 

#SPRING FRAMEWORK

-dependency injection

-transaction management

-web apps

-data access

-messaging

 

#스프링이 관리
ViewResolver : 뷰 요청, 응답 (servlet-context.xml)

DispactcherServlet : 클라이언트의 요청을 받아서 처리

HandlerMapping : URL = 컨트롤러, 컨트롤러 지정

 

#웹 개발

-MVC -> DI -> 느슨한 결합력과 인터페이스

-트랜잭션 -> AOP

-인증과 권한 -> Servlet Filter

 

#느슨한 결합력과 인터페이스

 

#DI(Dependency Injection)

-부품을 조립해준다. (종속성 주입)

-has a

-Setter Injection

-Construction Injection

 

#IoC 컨테이너(Inversion of Control) Container

-제어의 역순

 

#@Component

-애플리케이션 콘텍스트에 등록된 빈 들어 어노테이션들이 적용될 수 있게 한다.

-어노테이션이 설정된 새로운 빈들을 찾는 스캔도 할 수 있게 한다.

@Component

->@Controller

   ->@RequestMapping

   ->@GetMapping

   ->@...

->@Service

->@Repository

 

#AOP(Aspect Oriented Programming)

 

#HandlerMapping
-요청이 들어오면 URL에 맞는 Controller를 찾아서 매칭

 

#@Controller
-Controller 어노테이션이 있으면 컨트롤러를 의미

 

#@RequestMapping
-URL 처리

 

#ViewResolver관리

-servlet-context.xml에서 관리

 

#빈(bean)

-스프링이 인지하고 있는 객체이다.

-빈으로 등록되어 있지 않으면 스프링의 관리를 받을 수 가없다.

 

#<beans:bean> 태그

-스프링이 인지할 수 있는 태그 (빈에 등록할 수 있는 방법 어노테이션 방식, xml방식)

 

#<annotation-driven />

-어노테이션이 어떤 것이 붙어있느냐에 따라서 방향을 알려주는 역할

 

#org.springframework.web.servlet.view.InternalResourceViewResolver

-InternalResourceViewResolver는 리졸버의 한 종류


#prefix : 접두어 

: "/WEB-INF/views/"
-WEB-INF폴더는 외부에서 접근이 불가능하다. (JSP파일이 담겨 있다.)


#suffix : 접미어

: ".jsp"

 

/WEB-INF/views/ + hello + .jsp

 

#<context:component-scan base-package="org.green.spring_test" />

-스캔할 범위를 설정한다. (패키지 단위)

 

# web.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:beans="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

	<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
	
	<!-- Enables the Spring MVC @Controller programming model -->
	<annotation-driven />

	<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
	<resources mapping="/resources/**" location="/resources/" />

	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>
	
	<context:component-scan base-package="org.green.spring_test" />
	
	
	
</beans:beans>

 

 

 

728x90
반응형

댓글