woong's
Spring Tutorial 프로젝트 생성하기 01 본문
Spring Tutorial 프로젝트 생성하기 01
Spring 2.x , 3.x 과도기때 스터디를 통해서 공부를 했었는데.. 모바일 프로젝트만 하다보니
학습 했던 것을 잃어버려 다시 학습하고 정리하고자 포스트를 작성합니다.
이전에는 서버 설정 작업이 정말 어려웠는데 Spring Tool suite 를 사용하여 잠깐 사용해 본 결과
설정 작업의 많은 부분을 자동화 시켜 놓아 서버 작업하기 용이하게 바뀐것 같습니다.
처음 프로젝트 생성 < DAO 생성 < Service < Transaction < Controller
까지 속성으로 포스트를 작성해 보려 합니다.
Spring Starter Project 를 선택해서 프로젝트를 생성합니다.
프로젝트 이름 , 패키지 정보를 입력 하고 다음으로 넘어 갑니다.
여기서 Type 을 지정할수 있는데
Maven , Gradle 이 있습니다. 최근에 Gradle 을 많이 사용하고 있는 추세 입니다.
Android 역시 Gradle 을 이용하고 있구요. 하지만 이번에는 익숙한 Maven 으로 진행 해보려합니다.
한번에 많은것을 하면 오히려 산으로 갈것 같아 하나씩 바꾸어 보려 합니다.
이화면이 Spring Starter Project 의 장점 인것 같습니다.
필요로 하는 항목을 선택하면 자동으로 dependency 가 추가 되어서 따로 찾아가며
추가 하는 번거로움을 덜어 주는것 같습니다. 저는 이전에 스터디 할때 하이버 네이트 를 사용했습니다.
또한 Spring Boot 에서 ORM을 권장 하는것 같습니다.
그래서 JPA ,Web , H2 를 추가 하였습니다.
H2(Java SQL database , 메모리 기반의 데이터베이스)
생성된 프로젝트 구조는 위와 같습니다.
src > main > java : java class
src > main > resources : view Template(templates 폴더), resource(static 폴더), properties 구현
src > test > java : test 코드 java class
생소한 Application , application.properties 가 있습니다.
1. Application
단독 실행 및 스크립트 실행을 지원
@SpringBootApplication 어노테이션 안에
- Configuration
- ConponentScan
- EnableAutoConfiguration 등의 어노테이션이 등록되어 있습니다.
Spring Boot 의 코드를 작성해보면 이전과는 달리 DAO , Service 등을 사용할때
Scan을 따로 등록하지 않아도 되는점이 @SpringBootApplication 어노테이션 안에 있었네요.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @Configuration @EnableAutoConfiguration @ComponentScan public @interface SpringBootApplication { /** * Exclude specific auto-configuration classes such that they will never be applied. * @return the classes to exclude */ Class<?>[] exclude() default {}; /** * Exclude specific auto-configuration class names such that they will never be * applied. * @return the class names to exclude * @since 1.3.0 */ String[] excludeName() default {}; /** * Base packages to scan for annotated components. Use {@link #scanBasePackageClasses} * for a type-safe alternative to String-based package names. * @return base packages to scan * @since 1.3.0 */ @AliasFor(annotation = ComponentScan.class, attribute = "basePackages") String[] scanBasePackages() default {}; /** * Type-safe alternative to {@link #scanBasePackages} for specifying the packages to * scan for annotated components. The package of each class specified will be scanned. * <p> * Consider creating a special no-op marker class or interface in each package that * serves no purpose other than being referenced by this attribute. * @return base packages to scan * @since 1.3.0 */ @AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses") Class<?>[] scanBasePackageClasses() default {}; } | cs |
2. application.properties
application.properties 파일은 외부요인들을 읽어 오게 되는 역할을 하게 됩니다.
통상 DB 의 설정 작업이 작성됩니다. 처음에는 비어 있네요.
결론
이와같이 간단하게 프로젝트 생성만으로 굉장히 많은 것을 설정이 되었습니다.
Spring Boot 로 접근하면 잘 모를수 있지만 , 이전부터 개발하신분들은 아마 너무 간단해졌다고 느낄수 있습니다.
이프로젝트에 DB 설정만 적용하면 간단하게 서버를 구성 할수 있습니다. 다음 포스트에서는 DB를 구성해 보려합니다.
'Develop > Server' 카테고리의 다른 글
Server APNS 기능 구현시 주의점 (1) | 2016.05.27 |
---|---|
Spring Tutorial H2 설정 , Hibernate , Dao 작성 및 Junit test 사용하기 02 (0) | 2016.04.28 |
LG-5000P , NAPL-5000 이중 포트 포워딩 하기 (3) | 2016.02.13 |
서버 war 배포 (0) | 2016.02.13 |