1 Controller event listening Controller사이에서의 이벤트 리스닝은 해당 Controller가 View Controller이건 Global Controller이건 상관없다. 하나의 컨트롤러에서 fireEvent를 호출하면 다른 하나의 컨트롤러에서는 발생된 이벤트를 리스닝한다. 2 Controller 1 (Global Controller) 다른 Controller에서 발생되는 이벤트들을 전부 감지하는 Controller 정의 3 Controller 2 (View Controller) 이벤트를 발생시키는 컨트롤러 정의
1 클래스 정의 및 생성 자바스크립트는 클래스 기반의 언어는 아니다. 하지만 프로토타입 구조를 이용한 클래스 구조를 흉내 낼수가 있다. Ext JS는 이러한 작업을 쉽게 해주는 메소드들을 제공해준다. Ext Js에서 클래스를 생성하기 위해서 Ext.define 메소드를 제공해주는데 이 메소드는 문자열 기반 정의를 사용하기 때문에 네임스페이스 충돌을 피해 클래스 정의를 유연하게 할수 있게 해준다. Ext.define 메소드는 세개의 인자를 전달 받는데 첫번째 인자로 정의될 클래스의 이름을 문자열로 받게된다. 두번째는 해당 클래스의 몸체가 되는 속성 및 메소드를 오브젝트 형태로 받는다. 마지막 세번 째는 이 클래스가 정의된 후 동작하는 콜백함수를 받게 된다. 이러한 구조를 따라 클래스를 정의하면 다음과 같은..
1 어노테이션을 이용한 자동스캔 클래스패스에 위치한 클래스를 검색하여 특정한 어노테이션이 붙은 클래스를 자동으로 빈으로 등록하는 기능을 제공하고 있다. 이 기능을 사용하면 XML 설정 파일에 다양한 빈 정보를 추가하지 않고 특정한 클래스를 빈으로 등록 할 수 있게된다. 스프링 2.0부터 @Repository어노테이션, 2.5부터 Component 어노테이션, @Service 어노테이션, @Controller 어노테이션 이 추가 되었다 이들 어노테이션은 클래스 선언 부분에 붙게된다. @Commponent 어노테이션을 클래에스 적용했다면 태그를 이용하여 스프링이 클래스를 검색할 패키지를 등록하면 된다. 이 태그를 이용하면 @Component 어노테이션이 적용된 클래스 및 그 하위 어노테이션이 적용된 클래스를..
1 어노테이션 기반 설정 - 4 . @PostConstruct , @PreDestroy @PostConstruct어노테이션과 @PreDestroy어노테이션은 라이클 초기화 및 제거과정을 제공한다. @PostConstruct 어노테이션은 의존하는 객체를 설정한 이후에 초기화 작업을 수행 할 메서드에 적용되며, @PreDestroy 어노테이션은 컨테이너에게 객체를 제거하기 전에 호출 될 메서드에 적용된다. 즉, 스프링 설정 파일에서 init-method 속성과 destroy-mehtod속성을 이용하여 명시한 메서드와 동일한 시점에 실행 된다. @Resource 어노테이션과 마찬가지로 CommonAnnotationBeanPostProcessor 클래스를 빈객체로 등록하거나 태그를 사용하면 적용된다.
1 어노테이션 기반 설정 - 3 . @Resource @Resource 어노테이션은 어플리케이션에서 필요로 하는 자원을 자동 연결할 때 사용된다. 프로퍼티 및 설정메서드(Setter, Getter)등에 적용시키며 스프링 설정파일에 등록되어있는 빈 객체의 name 속성을 통하여 자동으로 주입된다. (@Autowired 어노테이션이 타입으로 자동 주입을 하는 반면, @Resource 어노테이션은 name속성을 통해 자동 주입을 실행한다) 위의 코드는 스프링 설정파일에 등록된 "spring"이란 name을 가진 빈 객체를 spring프로퍼티에 주입하며, "springTestService"라는 name을 가진 빈 객체를 setService() 메서드의 매개변수에 주입한다. @Resource 어노테이션 역시 스프..
1 어노테이션 기반 설정 - 2 . @Autowired @Autowired 어노테이션은 의존하는 객체를 자동으로 삽입해주며 생성자, 필드, 메서드 세 곳에 적용이 가능하다. @Autowired 어노테이션은 타입을 이용한 프로퍼티 자동설정기능을 제공한다. 위의 코드는 service 프로퍼티에 SpringTestService 타입의 빈 객체를 메서드를 통해 자동으로 주입해준다. @Autowired 어노테이션을 이용하여 자동 주입 설정을 적용하려면 AutowiredAnnotationBeanPostProcessor 클래스를 빈으로 등록해주어야하며 @Required 어노테이션과 마찬가지로 설정을 추가하는것으로 대신해도 된다. @Autowired 어노테이션은 위의 코드와 같이 필드 및 생성자에도 적용시킬 수 있으며..
1 어노테이션 기반 설정 - 1 . @Required @Required 어노테이션은 필수 프로퍼티를 명시 할때 사용된다. 필수 프로퍼티를 지정하려면 먼저 프로퍼티 설정 메서드에 @Requierd 어노테이션을 붙여야한다. 위 코드에서 @Required 어노테이션을 추가해도, 스프링은 해당 프로퍼티를 필수 프로퍼티로 인식하지 않는다. 스프링 설정파일에 @Required를 인식하고 필수프로퍼티로 지정할 수 있는 클래스를 빈 객체로 등록해야 비로서 스프링이 @Required 어노테이션을 알맞게 처리할 수 있게 된다. RequiredAnnotationBeanPostProcessor 클래스는 스프링 컨테이너에 등록된 빈 객체를 조사하여 @Required 어노테이션이 적용된 프로퍼티의 값이 설정되어있는지 여부를 검사..
1 컨테이너 간 계층 BeanFactory와 ApplicationContext 컨테이너는 서로 자식-부모의 계층관계를 가질 수 있다. 컨테이너간 계층 구조를 구성하면, 자식컨테이너에서 부모컨테이너에 정의한 빈 객체에 접근할수 있다. 하지만 부모컨테이너에서는 자식 컨테이너에 정의된 빈 객체에 접근할 수 없다. JAVA에서의 상속관계와 같은 특징이 있다고 생각하면 된다. ApplicationContext나 BeanFactory 컨테이너를 생성할 때 컨테이너간의 계층관계를 구성하려면 컨테이너 생성시 부모컨테이너를 지정해 주면 된다. 위의 childContainer 컨테이너를 생성할 때 부모 컨테이너로 parentContainer를 지정하였다. 이러한 컨테이너간의 계층 관계를 설정해 주면 chlidContain..
1 외부설정 프로퍼티 외부에 프로퍼티 파일을 생성하고 스프링에서 사용할 정보를 따로 관리 할 수가 있다. 한가지 예로 자바 JDBC의 경우 DB의 종류에 따라 코딩을 다르게 해야하며, 한번 변경한 코드는 재컴파일 해야 사용을 할 수가 있게된다. 하지만 외부의 프로퍼티 파일을 생성하고 사용함으로서 프로퍼티파일의 수정을 통하여 컴파일 없이 변경된 정보를 프로젝트에 그대로 반영할 수 있는 장점이 있다 2 외부 프로퍼티파일 위의 프로퍼티 파일은 스프링에서 사용할 datasource 빈 객체의 JDBC 정보이다. 이 파일을 스프링 설정파일에서 사용하고 싶다면 스프링 설정파일에 PropertyPlaceholderConfigurer 클래스를 빈으로 등록 하고 프로퍼티 이름을 설정 파일에서 사용하면 된다. locati..
1 Bean의 라이프 사이클 스프링은 빈 을 관리하는 컨테이너이다. 따라서 빈 객체를 생성하고, 초기화및 소멸 등 일련의 과정들을 담당하게 된다. 즉 스프링 컨테이너에 저장되는 빈 객체는 생성, 초기화, 소멸의 라이프 사이클을 가지게 된다. 스프링컨테이너에 생성되는 빈 객체의 라이프 사이클은 빈 클래스가 구현한 인터페이스에 따라 달라진다. 우선 BeanFactory 컨테이너를 사용할 경우 빈 객체의 라이프 사이클은 이러한 과정을 거치게 된다. 2 BeanFactory 사용 빈 객체 생성BeanNameAware.setBeanName()BeanFactoryAware.setBeanFactory()BeanPostProcessor의 초기화 전처리커스텀 init - methodInitializingBean.afte..
- Total
- Today
- Yesterday
- 스프링 autowired
- 마이바티스 공통 resultmap
- 마이바티스 resultmp
- 제이보스 스프링4
- Spring
- mybatis common resultmap
- tiles vs sitemesh
- mysql convert
- mybatis resultmap
- spring autowired
- 스프링
- mysql 한글깨짐
- extjs
- jboss spring4
- with admin option
- with grant option
- extjs grid crud
- custom mapping
- 스프링 컨테이너
- maven 로컬저장소
- spring container
- local repository
- extjs 6 theme
- extjs 6 테마
- tiles sitemesh
- 시간차이구하기
- sencha touch icons list
- extjs6
- 로컬저장소
- sencha touch icons
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |