본문 바로가기

Spring

[Spring] @Autowired의 Before/After Spring framework 2.5에 추가된 @Autowired annotation에 관한 글을 보고 정리. 알고있는 내용이기에~ 그냥 가볍게 Before 와 After code Before - @Autowired annotation이 없었을 때 applicationContext.xml에서 설정 EmpDao의 bean을 inject public class EmpManager { private EmpDao empDao; public EmpDao getEmpDao() { return empDao; } public void setEmpDao(EmpDao empDao) { this.empDao = empDao; } ... } 이랬던 코드가~ 바뀐다. After applicationContext.xml에서 설정..
[iBATIS] 7. iBATIS + Spring + transaction 7. iBATIS + Spring + transaction 1. 코드 기반의 트랜잭션 처리 (Progrmmatic Transaction) 2. 선언적 트랜잭션 (Declarative Transaction) - 태그를 이용 - TransactionProxyFactoryBean 태그를 이용 - @Transactional 어노테이션을 이용 태그 이용 @ Transactional 어노테이션을 이용 @Transactional(readOnly = true) public class DefaultFooService implements FooService { public Foo getFoo(String fooName) { // do something } // these settings have precedence for..
[iBATIS] 6. iBATIS + Spring 6. iBATIS + Spring SqlMapClientFactoryBean (org.springframework.orm.ibatis.SqlMapClientFactoryBean) SqlMapClientTemplate (org.springframework.orm.ibatis.SqlMapClientTemplate) SqlMapClientDaoSupport (org.springframework.orm.ibatis.support.SqlMapClientDaoSupport) 스프링의 iBATIS 연동지원 iBATIS 에서 데이터베이스 연동을 처리할 때 사용되는 SqlMapClient 역시 JDBC 프로그램을 할 때와 마찬가지로 try-catch 블록을 사용해서 예외를 처리해 주어야 한다 . 또한 에러원인에 따라 알..
[dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) 이 dW문서는 작년에 작성되었던데 얼마전 Spring과 관련하여 Acegi에 대해 살짝~ 공부해 봐서 마침 dW에 글이 있나 찾아보니 역시나 있군요~ 우리나라 말로하면 "아저씨"(지극히 저의 개인적인 생각)란 이름과 비슷한 아씨지(어떤분은 머 다른말로 표현하셨던데 어쩜 그게 더 비슷한거 같기도 하고) 아무튼! What is Acegi Security? Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with compr..
[Spring] 스프링에서 VelocityTools 환경설정 스프링에서 벨로시티 뷰 템플릿 엔진을 사용하고 있는데 여기에 편리한 tools를 사용하기 위해서 필요한 설정을 기억하기 위해 기록합니다. VelocityTools는 벨로시티 템플릿에서 숫자나 날짜, url등의 포맷팅을 지원하는 툴이고, VelocityTools프로젝트에는 GenericTools, VelocityView, VelocityStruts 세개의 부분으로 나눠져 있습니다. 보통 GenericTools를 많이 쓸일이 많기 때문에~ 조금 정리해보면, Generic Tools에는, DateTool A tool for manipulating and formatting dates. MathTool A tool for performing floating point math. NumberTool A tool ..
[Spring] Bean과 BeanFactory의 후처리 빈의 후처리 스 프링은 빈의 생명주기에 끼어들어 빈의 설정을 재검토하거나 바꿀 수 있는 2개의 기회를 제공한다. 후처리는 어떤 이벤트가 발생한 후에 처리되는 것이라고 추측할 수 있다. 이벤트란 빈이 설정되거나 인스턴스화되는 것을 말한다. BeanPostProcessor 인터페이스는 빈이 생성되거나 묶인 후에 변경할 수 있는 두개의 기회를 제공 Interface BeanPostProcessor에서는 두개의 메소드를 제공한다 postProcessBeforeInitialization : 빈이 초기화(afterPropertiesSet(), 빈의 커스텀 init-method 호출)되기 직전에 호출 postProcessAfterInitialization : 빈이 초기화된 직후에 호출 빈 팩토리의 후처리 BeanFa..
[Spring] 자동 묶기(Autowire) 자동 묶기(Autowire) 자동 묶기의 네 종류 byName : 묶고자 하는 특성의 이름과 동일한 이름이나 ID를 가진 빈을 컨테이너에서 찾는다. 빈을 찾지 못하면 그 특성을 묶이지 않은 채로 남는다. byType : 묶 고자 하는 특성의 타입과 동일한 타입을 가진 빈을 컨테이너에서 찾는다. 빈을 찾지 못하면 그 특성은 묶이지 않은 채로 남고, 하나 이상의 빈을 찾게 되면 org.springframework.beans.factory.UnsatisfiedDependencyException을 던진다. Constructor : 묶고자 하는 빈의 생성자 중 하나의 파라미터와 맞는 하나 이상의 빈을 컨테이너에서 찾는다. 모호한 빈이나 생성자가 발견될 경우 org.springframework.beans.facto..
[Spring] 세터 주입(Setter Injection)의 대안 세터 주입(Setter Injection)의 대안 - 생성자 주입(Constructor Injection) 세터 주입은 빈 특성을 설정하고 묶을 수 있는 직관적인 방법이지만, 한 가지 단점은 변경될 수 있는 모든 특성이 세터 메소드를 통해서 사용할 수 있다고 가정하는 것에 있다. 하지만 빈이 이와 같은 방식으로 작동하기를 원하지 않을 때, 이런 유형의 빈이 인스턴스화될 때에는 어떤 특성도 설정될 수 없으며, 따라서 빈이 유효하지 않은 상태로 있을 가능성이 있다. 어떤 특성들은 빈이 생성될 때 한 번만 설정되고 그 이후에는 변경될 수 없도록 만들고 싶은 경우도 있다. 이는 세터를 통해 모든 특성을 공개하는 경우에는 곤란해진다. 대안은 일부 특성들은 생성자 를 통해 설정될 수 있도록 빈을 설계하는 것이다. ..
[Spring] 빈 묶기(Bean wiring) 빈 묶기(Bean wiring) XML로 묶기 : 다음을 이용해 스프링 컨테이너가 XML을 통한 빈 묶기를 지원한다. XmlBeanFactory ClassPathXmlApplicaionContext FileSystemXmlApplicationContext XmlWebApplicationContext 프로토타입과 싱글톤 비교 스프링의 모든 빈은 싱글톤. getBean()의 호출에 의해서든 묶기를 통해서든 간에, 컨테이너가 빈을 배포할 때에는 항상 그 빈의 완전히 동일한 인스턴스를 내줄 것이다. scope="singleton" scope="prototype" 프로토타입 빈을 정의하는 것이 유리할 때 프로토타입을 정의한다는 것은 실제 하나의 빈을 정의하는 것이 아닌, 청사진을 정의한다는 의미다. 그 다음엔 그..
[Spring] Hitting the database * Hitting the database 1) Spring의 DataAccessException java.sql.SQLException은 checked Exception입니다. 즉, 개발자가 try-catch로 잡아줘야 합니다. 이는 코드를 난잡하게 만들수 있습니다. 그리고 SQLException이 제공하는 예외는 Spring에 비해서 매우 종류가 많지 않습니다. DataAccessException은 SQLException이나 HibernateException등과 같이 특정 기술에 의존적인 예외를 던지지 않기때문에, 데이터 접근 인터페이스가 구현에 의존적인 예외가 아닌 스프링의 일반적인 DataAccessException을 던지게 함으로써, 특정한 퍼시스턴스 구현에 결합되는 일을 방지합니다. DataAc..
5회 스프링 프레임웍 사용자 모임에 다녀왔습니다. 스프링 프레임웍에 대한 세미나를 1회때인가, 스프링 소개와 IoC할때 가고, 정말 오랫만에 참여한지라 알아들을 수 있을 것인가, 염려와 함께 도곡역으로 향하였습니다. 장소는 도곡역 IBM 온디맨드 홀에서 열렸는데, 입구부터 백기선 님이 안내를 해주시더군요.국민대에서 할때 보다 훨씬 찾기 쉽고 더 집중이 잘 된 장소더군요^^ 1. 이일민님의 Spring Web Flow의 발표내용과 검색내용을 정리한 것 (차분하고, 듬직(?)하신 목소리로 너무 어렵지 않게 머릿속에 잘 들어왔습니다. ) Spring Web Flow (SWF) is an emerging module of The Spring Framework. The module is part of Spring’s web application developme..