1. Filter: 정제역할, 예) XSS filter 2. Interceptor: 가로채기 예) 권한관리 3. AOP: 관점 지향 프로그래밍 예) 로깅, 트랜젝션, 에러처리 -> 프로그래밍을 하다보면 공통적인 기능이 많이 발생합니다. 이러한 공통 기능은 상속을 통해서 모든 모듈에 적용을 시켜줄 수 있지만 몇 가지 문제가 있지요. 우선 JAVA에서는 다중 상속이 불가능하기 때문에 한계가 있고, 기능을 구현하는 부분에 핵심 기능 코드와 공통 기능 코드가 섞여 있어서 효율이 떨어집니다. 이러한 문제점때문에 핵심 기능과 공통 기능을 분리 시켜놓고, 공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식의 AOP가 등장을 하게 되었습니다. 스프링은 자체적으로 프록시 기반의 AOP를 지원하고 있습니다. * pro..
1. 컨테이너: 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 기능을 제공 (스프링도 일종의 컨테이너) 2. 스프링 컨테이너 종류 BeanFactory: applicationContext.xml에 등록된 bean객체를 생성, 관리하는 기본적인 기능만 제공. 컨테이너가 구동될 때 객체를 생성하는 것이 아니라 클라이언트로부터 요청(getBean)에 의해서만 객체를 생성 (lazy loading) ApplicationContext: 이를 확장한 것. 트랜잭션관리나 메시지 기반의 다국어 처리 등 다양한 기능 제공. 클래스들을 객체화하는 즉시(context를 시작시킬때 singleton bean)) 로딩 방식으로 동작. ClassPathXmlApplicationContext: 클래스패스로 된 설정파일..
서비스 기동 시작 1. WAS가 구동되면서 web.xml이 로딩 2. web.xml에 등록되어 있는 ContextLoaderListener가 생성된다. ContextLoaderListener 클래스는 ServletContextListener 인터페이스를 구현하고 있으며, ApplicationContext를 생성하는 역할을 수행한다. 3. 생성된 ContextLoaderListener는 root-context.xml을 loading한다. 4. root-context.xml에 등록되어 있는 Spring Container가 구동된다. @Service, @Repository와 같은 어노테이션이나 DB관련 객체, DAO, VO 객체들이 생성된다. 서비스 기동 끝 & 요청 시작 5. 클라이언트로부터 웹 애플리케이션..
local, dev, stage, prd와 같이 환경에 맞는 application.yaml 혹은 properties 설정을 위한 profile을 설정하는 방법은 여러가지다. 나는 주로 VM option를 많이 사용했는데, intelliJ가 커뮤니티버전이라 그런가, VM options가 보이지 않았다. 이 경우, Environment variables로도 설정이 가능하다. > profiles 설정을 위해 Edit Run Configuration 클릭 1. SPRING_PROFILES_ACTIVE=local (Environment variables 사용) 2. -Dspring.profiles.active=local (VM option 사용)
- Total
- Today
- Yesterday