달력

1

« 2020/1 »

  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  



 

Spring MVC 특징

·         Spring 기반으로 하고 있기 때문에 Spring 제공하는 트랜잭션 처리나 DI AOP등의 기능을 손쉽게 사용할 있습니다.

·         서블릿 기반의 개발을 위한 MVC 프레임워크를 제공합니다.

·         Front Controller Pattern, Command Pattern, MVC Model2 프레임워크 차원에서 제공합니다.

·         Front Controller 역할을 하는 DispatcherServlet 클래스를 계층의 앞단에 놓고, 서버로 들어오는 모든 요청을 받아서 처리하도록 구성되어 있습니다.

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

IoC 컨테이너(IoC Container)

·         스프링 프레임워크는 객체에 대한 생성 생명주기를 관리 있는 기능을 제공하고 있습니다.

·         , IoC 컨테이너 기능을 제공합니다. 그래서 IOC 컨테이너를 스프링 프레임워크, Spring Container라고 합니다.

·         관리되어지는 (Managed bean) 모여 있는 곳입니다.

·         Application Context 클래스로 구현됩니다.

 

 

 

 

 

IoC 컨테이너 기능

·         IoC 컨테이너는 객체의 생성을 책임지고, 의존성을 관리합니다.

·         POJO 생성, 초기화, 서비스, 소멸에 대한 권한을 가집니다.

·         개발자들이 직접 POJO 생성할 있지만 컨테이너에게 역할을 맡깁니다.

 


 

Posted by codedragon codedragon

댓글을 달아 주세요


 

IoC(Inversion of Control)

·         제어권의 역전

·         객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미합니다.

·         Framework Container 제어권을 가지고 있습니다.

·         컴포넌트 의존관계 결정 (Component dependency resolution), 설정(Configuration) 생명주기(Lifecycle) 해결하기 위한 디자인 패턴(Design Pattern) 입니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

STS 설치파일 다운로드

 

STS Tools 페이지로 이동합니다.

https://spring.io/tools

 

or

페이지 하단 메뉴의 [TOOLS] 클릭


 

 

중간 정도에 "Spring Tools 4 for Eclipse" 영역에 있는 Windows 64-bit[DOWNLOAD STS4] 버튼을 클릭합니다.


 

 


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

TransactionTemplate

기본적으로 사용한 PlatformTransactionManager 인터페이스 보다 더욱 많이 사용됩니다. 많이 사용된 다는 것은 기존의 방법보다 개발자의  노력과 시간을 덜어줍니다.

 

 

기존 코드

PlatformTransactionManager transactionManager;

 

public void setTransactionManager(PlatformTransactionManager transactionManager) {

this.transactionManager = transactionManager;

}

 

public void buyTicket(final TicketDto dto) {

// transactionManager 사용하기 위한 기본 설정

// 트랜잭션 처리를 위한 기본 객체 생성

TransactionDefinition definition = new DefaultTransactionDefinition();

// 트랜잭션 수행 객체을 얻어 status 저장

TransactionStatus status = transactionManager.getTransaction(definition);

 

// try ~catch구문으로 트랜잭션 처리

try { // 트랜잭션 처리 구문을 포함시킵니다.

// 카드 결제 작업 - card테이블 변경

template.update(new PreparedStatementCreator() {

@Override

public PreparedStatement createPreparedStatement(Connection con)

throws SQLException {

// SQL 쿼리 수행

return pstmt;

}

});

// 정상 수행시 커밋 수행

transactionManager.commit(status);

}catch(Exception e) { // 트랜잭션 실패시 처리 내용

e.printStackTrace();

// 에러 발생시 롤백 수행

transactionManager.rollback(status);

}

}

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

생명 주기(life cycle)

·         스프링 컨테이너 생명 주기

·         http://codedragon.tistory.com/6153

·         스프링 생명 주기

·         http://codedragon.tistory.com/6179

·         스프링 범위

·         http://codedragon.tistory.com/6038

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

전체적인 컴포넌트 설계 도식도 (게시판)

클라이언트의 요청에 대해서 Dispatcher 요청을 받아서 해당 Controller 전달합니다.

Controller에서 작업을 분기하고, 해당 Command클래스가 작동하여 DAO 이용한 데이터 베이스 작업을 합니다.

DAO클래스의 결과물인 DTO객체가 View(.jsp페이지) 전달되며, View에서는 클라이언트의 요청에 대한 응답으로 화면(UI) 구성하여 출력 합니다.

 


 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

에러메시지

Valid cannot be resolved to a type

Valid cannot be resolved to a type


 

 

 


해결방법

http://codedragon.tistory.com/6126

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

전자정부 표준프레임워크 퍼스트북

 


 

 

 

목차

1. 표준프레임워크 소개 ..... 1

2. 개발환경 구성하기........ 8

3. 개발자 개발환경 활용.....16

4. 서버 개발환경 활용......29

5. 실행환경 소개.............42

6. DI (Dependency Injection)...............45

7. Logging............60

8. AOP(Aspect Oriented Programming).........64

9. Data Access(MyBatis)..73

10. MVC(Model View Controller).......97

11. 국제화(Internalization) 113

12. Validation... 117

13. Comprehensive Practice....... 129

 

 

 

 

 

직접 다운로드

eGovFrame_FirstBook.z01

eGovFrame_FirstBook.zip

 

 

or

http://bit.ly/2BgSpFW

 

 




Posted by codedragon codedragon

댓글을 달아 주세요


 

 

프로퍼티 파일을 이용한 설정

Environment객체를 사용하지 않고 프로퍼티 파일을 직접 이용하여 스프링 빈을 설정하는 방법

 

 

 

 

프로퍼티 파일을 이용한 설정 방법 종류

·         스프링 설정 XML파일에 프로퍼티 파일을 명시 방법

·         스프링 설정 JAVA파일에 프로퍼티 파일을 명시 방법

 

 

스프링 설정 XML파일 프로퍼티 파일을 명시 방법

스프링 설정 XML파일에 프로퍼티 파일을 명시 합니다.


 

 

applicationCTX.xml

외부 파일을 가져오기 위해서는  아래의 context 요소로 추가해 주어야 합니다.

<context:property-placeholder location="classpath:admin.properties, classpath:db_admin.properties" />

 

<value>요소에 값을 직접 입력하지 않고  properties파일에 설정된 값을 가져와서 값을 지정하게 됩니다.

<property name="adminId">

<value>${admin.id}</value>

</property>

 

 

 

스프링 설정 JAVA파일 프로퍼티 파일을 명시 방법

스프링 설정 JAVA파일에 프로퍼티 파일을 명시 합니다.


 

 

ApplicationConfig.java

Properties() 메소드 정의하여 properties파일에 대한 정보를 설정합니다.

스프링 설정 XML파일에 프로퍼티 파일을 명시 방법에서 <context:property-placeholder>요소와 같은 역할을 합니다.

@Bean

public static PropertySourcesPlaceholderConfigurer Properties() {

PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();

// properties 파일 정보를 설정

Resource[] locations = new Resource[2];

locations[0] = new ClassPathResource("admin.properties");

locations[1] = new ClassPathResource("db_admin.properties");

configurer.setLocations(locations);

return configurer;

}

 

properties 파일에 있는 값을 가져와서 해당 변수에 설정해 줍니다.

properties 파일의 admin.id 있는 값을 변수 adminId 저장합니다.

@Value("${admin.id}")

private String adminId;

 

 


Posted by codedragon codedragon

댓글을 달아 주세요