본문 바로가기

Spring

[spring] Singleton 빈과 NonSingleton 빈 Spring에서는 기본적으로 Singleton으로 빈을 관리한다. 그렇다는 것은 하나의 웹 어플리케이션에서 공통으로 참조 할 수 있는 빈들의 저장소가 있어야 한다는 뜻일 것이다.. Spring 프레임워크에서 어플리케이션 저장소 역할을 하는 클래스가 ApplicationContext이다. (BeanFactory를 구현한다) 웹 어플리케이션은 하나의 ServletContext를 인스턴스로 가지기 때문에 애플리케이션 전체에서 사용할 전역 변수 관리를 위해 ServletContext를 이용한다. Spring역시 ApplicationContext를 웹 어플리케이션에서 하나의 저장소로 사용하기 위해서, ApplicationsContext를 ServletContext의 속성으로 추가한다. 이것은 나중에 WebAppl.. 더보기
[spring] Pojo빈의 생명주기 관리 하기 빈의 생명주기에서 스프링은 초기화와 소멸과정을 지원한다. 각각 2가지의 방법이 있는데 하나는 스프링에서 제공되는 인터페이스를 구현하는 방법과 하나는 메서드를 만든 후 그 메서드를 설정 파일에 명시해 주는 것이다. 우선 초기화 과정 지원을 보자. 일단, InitializingBean 인터페이스를 implements 하여 public void afterPropertiesSet() 메서드를 구현하여 주는 것이다. 또 하나는 클래스에 임의의 메서드를 만들고나서 예를 들면 public void init() {..} 설정 xml에 이렇게 init-method 속성으로 추가해주면 된다. 소멸과정을 지원하는 메서드로는 일단, DisposableBean 인터페이스를 implements하여 destroy() 메서드를 구현.. 더보기
[spirng] 웹 요청 처리 스프링을 다시 공부하고 있다.. 스프링에서 웹 요청을 처리하기 위해서는 일단 web.xml에 아래와 같은 설정을 해줘야 한다. dispatcher org.springframework.web.servlet.DispatcherServlet 1 dispatcher *.htm 그리고, 스프링 설정 xml인 dispatcher-servlet.xml에는 아래와 같은 설정을 해줘야 한다. 그렇게 되면 사용자가 http://xxxxxxx/greeting/hello.htm 을 요청하게 되면 바로 handlerMapping에 의해서 /greeting/hello.htm의 이름을 가진 컨트롤러를 사용하게 된다. 자, 여기서 만약 이부분을 삭제한다면? 어떻게될까.. 답은 정상적으로 작동한다이다. log4j 로거 레벨을 debu.. 더보기
Spinrg MVC step by step Spring 입문자의 필수 길잡이인 Spring-MVC-step-by-step이 스프링 2.5 버젼에 맞춰서 업그레이드 되었네요. 저도 Spring 걸음마 단계라서 예전에 공부했던 내용을 되새겨 볼 겸 다시 한번 해봤습니다. 이클립스3.3, ant1.7, spring2.5, jdk1.5, tomcat 6.0 을 사용했네요 그리고 junit을 사용하여 테스트 클래스들을 만들고 있습니다. 저 같은 경우 일단 흐름을 파악해보고 싶어서 hello.jsp 페이지로 부터 request가 흘러가는 것을 trace 해보도록 하겠습니다. 그냥 자기 공부용이고 정리해놓은 것입니다. 나중에 저 페이지도 한번 번역해서 올려볼까 합니다. 어렵지 않은 영어니까요 :) http://www.springframework.org/doc.. 더보기
FactoryBean을 이용한 AOP 클래스 생성 예제 1. advice를 이용한 생성 UserService target = new UserServiceImpl(); ProxyFactory pf = new ProxyFactory(); pf.addAdvice(new UserLoggingAdivce()); pf.addAdvice(new EmailNotificationThrowAdvice()); pf.setTarget(target); UserService userService = (UserService) pf.getProxy(); : advice 클래스와 target 클래스만을 가지고 위빙시키고 있다. 아마 내부적으로 디폴트 포인트컷을 적용하여 advisor를 만들어서 셋팅하고 있을 것이라 생각이 됨. 2. advisor를 생성 UserService target .. 더보기
Spring JDBC 1. JDBC와 SPRING JDBC API JDBC SPRING JDBC DriverManager / DataSource DataSource Statement / PreparedStatement / CallableStatement JdbcTemplate / SQLObject ResultSet / RowSet POJO List OR Map/SQLRowSet 2. MyJdbcDaoSupport 개발 Spring 프레임워크는 모든 DAO 클래스에서 공통적으로 필요한 속성과 기능들(EX : connection 등)을 포함하고 있는 Base 클래스로 org.springframewrok.jdbc.core.support.JdbcDaoSupport를 지원한다. 이 클래스는 DataSource를 관리 할 뿐 아니라 J.. 더보기
[spring] spring 기초 빈의 설정 정보 관리 파일이 xml이라고 보면 xml에서는 이런식으로 설정이 되어 있다. 실제 소스에서는 public class UserServiceImpl implements USerService { private UserDAO userDAO; public void setUserDao(UserDao newUSerDAO) { this.userDAO = newUSERDAO; } int result = userDAO.insert(user); ... 이처럼 UserDAO에 대한 정의나 생성이 아무것도 없이 사용 할 수 있는데 xml에 설정되어 있기 때문이다. bean태그 아래 property 태그의 이름이 userDAO라면 위 예제 클래스의 setUserDAO를 통하여 자동으로 xml에서 설정되어 있는 MyS.. 더보기