4 주차 - SPRING 환경설정및구현 Spring 기반의웹프로젝트를구성하고싶어요 T^T Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 2. eclipse Spring Plug-In 을활용한템플릿프로젝트자동구성필수는아니지만해놓으면편

Similar documents
Spring Boot

슬라이드 1

슬라이드 1

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

PowerPoint 프레젠테이션

Spring Boot/JDBC JdbcTemplate/CRUD 예제

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Spring Data JPA Many To Many 양방향 관계 예제

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft Word - src.doc

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

<property name="configlocation" value="classpath:/egovframework/sqlmap/example/sql-map-config.xml"/> <property name="datasource" ref="datasource2"/> *

슬라이드 1

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

PowerPoint Presentation

PowerPoint 프레젠테이션

JAVA 플랫폼 개발 환경 구축 및 활용

PowerPoint 프레젠테이션

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

NCS : ERP(SAP) ERP(SAP) SW IT,. SW IT 01., 05., 06., 08., 15., , 05. SW IT,,,, SAP HR,,, 4,,, SAP ABAP HR SCHEMA, BSP,

JUNIT 실습및발표

슬라이드 제목 없음

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

ALTIBASE 사용자가이드 Templete

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

어댑터뷰

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

쉽게 풀어쓴 C 프로그래밊

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Apache Ivy

Microsoft Word - Armjtag_문서1.doc

슬라이드 1

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

[Brochure] KOR_TunA

ALTIBASE 사용자가이드 Templete

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su

WS12. Security

Microsoft PowerPoint - CSharp-10-예외처리

PowerPoint 프레젠테이션

Web Application을 구성하는 패턴과 Spring ROO의 사례

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

로거 자료실

PowerPoint Presentation

Microsoft PowerPoint - JCO2007_Spring2.0_발표자료_Rev-A.ppt [호환 모드]

PowerPoint 프레젠테이션

공개 SW 기술지원센터

ISP and CodeVisionAVR C Compiler.hwp

문서의 제목 나눔고딕B, 54pt

슬라이드 1

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence)

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

4S 1차년도 평가 발표자료

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

슬라이드 1

단계

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

슬라이드 1

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

JDK이클립스

실용적인 스프링 AOP

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

본 강의에 들어가기 전

PowerPoint Presentation

No Slide Title

Install stm32cubemx and st-link utility

오버라이딩 (Overriding)

PowerPoint Template

교육2 ? 그림

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

슬라이드 1

슬라이드 1

대량문자API연동 (with directsend)

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Google SVN 계정만들기 Site : 1. 사이트접속후프로젝트호스팅선택 2. 오픈소스프로젝트검색선택

JDBC 소개및설치 Database Laboratory

PowerPoint Presentation

소프트웨어 검증 및 설계

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

파워포인트 템플릿

- 목차 - 1. 프로젝트소개 배경및목적 프로젝트기능 4 2. 관련기술 웹사이트개발 패션데이터분석알고리즘 기대효과 진행상황 참조


(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

untitled

기술자료

Studuino소프트웨어 설치

MVVM 패턴의 이해

02 C h a p t e r Java

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

10.ppt

Microsoft PowerPoint - 03_DB Migration 방법론 및 툴 사용법-인쇄.ppt

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Transcription:

4 주차 - SPRING 환경설정및구현 Spring 기반의웹프로젝트를구성하고싶어요 T^T Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 2. eclipse Spring Plug-In 을활용한템플릿프로젝트자동구성필수는아니지만해놓으면편리한것들 1. slf4j 를활용한 Logger 생성을편리하게해보자 2. AOP 설정 JDBC 를활용한 DB 연결정보및트랜잭션설정 1. DB 접속정보설정 2. 트랜잭션설정개발 GoGo 1. 간단한형태의 CRUD 기능이구현된기능시연 2. 웹에서기능테스트 Spring 기반의웹프로젝트를구성하고싶어요 T^T 우리의목표는 DB 와연결하여 CRUD 기능을수행할수있는간단한형태의웹프로젝트를구성해보는것! 그렇다면 Spring 기반의웹프로젝트를구성하는단계는어떻게진행하면좋을까?? 1. 2. 3. 4. Spring 기반의웹환경구축 (Test 페이지가정상적으로표시되는지확인 ) 개발하기편리한것들미리설정!! JDBC 를활용한 DB 연결정보설정개발 GoGo Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 요즘과연이렇게프로젝트를수행하는곳이있을까?? 예전에야이렇게하는곳이간혹있었지만, Maven 이대세가되버린지금에서야의미가없긴함ㅡㅡ Maven 이나 Ant, Gradle 을사용하지못하는상황이있을수도있으니한번살펴보기나하자!! ( 기존프로젝트구성내역참조 ) 2. eclipse Spring Plug-In을활용한템플릿프로젝트자동구성 Eclipse에서 Spring Project를생성하려면당연한이야기겠지만플러그인을설치해야된다능...!! 필요한플러그인은두가지 Maven과 STS - Maven 플러그인설치 2.1 먼저이클립스마켓플레이스에접속! - 어려울것없음. 그냥메뉴를선택하면마켓플레이스가오픈됨 (Help -> Eclipse Marketplace)

- 누르면마켓플레이스창이오픈 ~ 거기서검색을위한단어입력 (find 항목에 maven 입력후엔터 ) -> 모를땐사람들이많으쓰는놈으로!! -> "Install " 버튼을클릭하면알아서설치 ~

- STS (Spring Tool Suite) 도같은방식으로설치

- 자이제템플릿프로젝트를수행하기위한모든준비가완료!!! - " 뭐가이리어려워!! " 라고할수있겠지만한번해놓으면다음부터는않해도되니까... 2.2 Spring 프로젝트를생성하기위해 "New Project" 에서 Spring 으로필터!! 2.3 우리는 Spring 기반의프로젝트를생성할예정이니 "Spring Templet Project" 를선택

2.4 웹프로젝트를생성할예정이니 Spring MVC Project 항목선택!! ( 첨엔필요한파일들을다운받으니인터넷이가능해야함ㅡㅡ ;;) 2.5 지정하고싶은프로젝트이름과패키지형태를입력한후 "Finish" 버튼을클릭하자!!

2.6 자 ~~ 이제돌려볼수있는스프링프로젝트가생성되었다. 참고사항 Spring Templet Project 생성후톰캣 7 버전으로구동시 jsp-api 가 2.1 로지정되어있어 JSP 호출시에러가발생합니다. 해결방안은 pom.xml 에설정된 jsp-api 관련항목을삭제하던가 2.2 버전으로올려줘야에러가발생하지않습니다. tomcat version - jsp spect - java version : http://tomcat.apache.org/whichversion.html 2.7 이제바라는대로프로젝트의구조를변경하면된다. 필수는아니지만해놓으면편리한것들

1. slf4j 를활용한 Logger 생성을편리하게해보자 - 매 Class 마다변경해야되는 Class 명칭 - LoggerHelper Class 를만들어손이많이가는부분을조금이라도줄여보자. As-Is : private static final Logger logger = LoggerFactory.getLogger( HomeController.class ); To-Be : private static final Logger logger = LoggerHelper.getLogger(); 2. AOP 설정 AOP 란? ->Aspect-Oriented Programming 의약자로관점지향프로그래밍 항목 Before advice After returning advice After throwing advice 설명 joinpoint 전수행예외처리없이종료되는시점수행예외처리가발생하는시점 After (finally) advice joinpoint 를빠져나갈때수행 ( 예외든아니든상관 X) Around advice 시작부터종료까지의상태를관장 - AOP 를설정하기위해 XML 에직접선언하는방식과 Annotation 을활용하는방식이있는데... 우리는간단하게 Annotation 을활용해봅시다. - Annotation 기반의 AOP 를설정하기위해서우리가해야할일?? -> 이한줄만입력해주시면됩니다. < aop:aspectj-autoproxy /> - 그러면 AOP 를사용하기위한모든준비는완료!!! AOP 를동작시키기위한 Class 를작성해봅시다. - 설정참조 Pointcut execution(public * *(..)) execution(* set*(..)) execution(* set*(..)) execution(* com.xyz.service.accountservice.*(..)) execution(* com.xyz.service.*.*(..)) execution(* com.xyz.service..*.*(..)) within(com.xyz.service.*) within(com.xyz.service..*) this(com.xyz.service.accountservice) target(com.xyz.service.accountservice) args(java.io.serializable) @target(org.springframework.transaction.annotation.transacti onal) 선택된 Joinpoints public 메소드실행이름이 set으로시작하는모든메소드명실행이름이 set으로시작하는모든메소드명실행 AccountService 인터페이스의모든메소드실행 service 패키지의모든메소드실행 service 패키지와하위패키지의모든메소드실행 service 패키지내의모든결합점 service 패키지및하위패키지의모든결합점 AccountService 인터페이스를구현하는프록시개체의모든결합점 AccountService 인터페이스를구현하는대상객체의모든결합점하나의파라미터를갖고전달된인자가 Serializable인모든결합점대상객체가 @Transactional 어노테이션을갖는모든결합점

@within(org.springframework.transaction.annotation.transacti onal) @annotation(org.springframework.transaction.annotation.tran sactional) @args(com.xyz.security.classified) bean(accountrepository)!bean(accountrepository) bean(*) bean(account*) bean(*repository) bean(accounting/*) bean(*datasource) bean(*datasource) 대상객체의선언타입이 @Transactional 어노테이션을갖는모든결합점 실행메소드가 @Transactional 어노테이션을갖는모든결합점 단일파라미터를받고, 전달된인자타입이 @Classified 어노테이션을갖는모든결합점 accountrepository 빈 accountrepository 빈을제외한모든빈 모든빈 이름이 'account' 로시작되는모든빈 이름이 Repository 로끝나는모든빈 이름이 accounting/ 로시작하는모든빈 이름이 datasource 나 DataSource 으로끝나는모든빈 JDBC 를활용한 DB 연결정보및트랜잭션설정 1. DB 접속정보설정 - DB 접속정보를설정하기위해서는 context-datasouce.xml 에 DB 접속정보를설정해주면됩니다. ( DBMS 종류에따라드라이버는다르게설정해야함 -> 저는오라클을사용할예정이어서 oracle.jdbc.driver.oracledriver 드라이버를사용합니다.) DataSource 를활용한선언 ( 간단하게접속정보를지정할수있지만설정파일에접속정보가모두나온다는점을주의해주세요 ) <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname" value="oracle.jdbc.driver.oracledriver"/> <property name="url" value=" jdbc:oracle:thin:@localhost:1521:orcl"/ > <property name="username" value="id"/> <property name="password" value="password"/> </bean> JNDI 방식의 Lookup 방식 (WAS 에설정된 DB 접속정보를그대로활용... WAS 벤더에따른설정방식이달라서불편한점도있습니다ㅡ _ ㅡ ) <bean id="datasource" class="org.springframework.jndi.jndiobjectfactorybean"> <property name="jndiname" value=" java:comp/env/jdbc/slipp" /> </bean> 2. 트랜잭션설정 - 트랜잭션을설정하기위해서 xml 기반의설정과 annotation 기반의설정모두가능합니다. - 여기서는 xml 기반의간단한설정을해보겠습니다.

- 트랜잭션선언과적용할 AOP 형태의결합으로간단한트랜잭션의적용이가능합니다. - 참고사항 속성설명사용예 isolation norollbackfor norollbackforclassname propagation readonly rollbackfor rollbackforclassname timeout Transaction 의 isolation Level 정의하는요소. 별도로정의하지않으면 DB 의 Isolation Level 을따름. 정의된 Exception 목록에대해서는 rollback 을수행하지않음. Class 객체가아닌문자열을이용하여 rollback 을수행하지않아야할 Exception 목록정의 Transaction 의 propagation 유형을정의하기위한요소 해당 Transaction 을읽기전용모드로처리 (Default = false) 정의된 Exception 목록에대해서는 rollback 수행 Class 객체가아닌문자열을이용하여 rollback 을수행해야할 Exception 목록정의 지정한시간내에해당메소드수행이완료되지않은경우 rollback 수행. -1 일경우 no timeout (Default = -1) @Transactional(isolation=Isolation.DEFA ULT) @Transactional(noRollbackFor=NoRoleBa cktx.class) @Transactional(noRollbackForClassName = NoRoleBackTx ) @Transactional(propagation=Propagatio n.required) @Transactional(readOnly = true) @Transactional(rollbackFor=RoleBackTx.c lass) @Transactional(rollbackForClassName= R olebacktx ) @Transactional(timeout=10) 3. SqlMapper (mybatis) 연동설정 - mybatis 는스프링과쉽게연동하여 sql 처리를수월하게해줄수있는 sql mapper 입니다. - DB 에접속하여처리를하기위해서는 host, id, password 등이필요하겠지만, 우리는이미 datasource 를활용해서해당정보를가져왔기때문에간단한선언만해주시면됩니다. - 그리고 mybatis 설정을위한설정파일과 SQL 을작성한 xml 파일경로를지정하시면되구요. - 전자정부표준프레임워크로인증받기위해서는전자정부에서제공하는 @Mapper 어노테이션을사용하셔야합니다.

- 그러기위해서다음과같은전자정부제공라이브러리를활용해서 Mapper 어노테이션을스캔하셔야합니다. (controller, service 를스캔한것처럼요 ) - 실제동작이되는내용은예제를보시면서동작해보도록하겠습니다. 개발 GoGo - 시간을산정해보고, 시간여유가있다면직접구현해보겠지만... 시간이안된다면구현된소스를한번리뷰하는정보도로마무리 1. 간단한형태의 CRUD 기능이구현된기능시연 2. 웹에서기능테스트 가능하다면요새많이사용되는 RIA 형태의화면을시연하는것도고민해봅시다. (Grid, Tree 구성같은?)