ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • spring-boot
    Spring 2018. 3. 26. 14:34


    자주 사용하는 boot 설정 


    STS 를 사용중이라면 

    New -> Spring Starter Project 를 사용하면 편리하다 

    Gradle , Java8 , 그룹은 회사 도메인명, Arifact 는 프로젝트명을 기재

    spring-boot + web+jpa + (h2 :테스트 할때만 사용하고 통상 MariaDB 를 사용) 


    만약 STS 를 사용중이지 않다면 

    https://start.spring.io/ 여기 사이트를 이용해서 다운받아서 사용할수도 있다. 

    주의: 패키징시 Jar 는 view 가 없을때 사용 ,  War 는 View 포함하는 경우 사용,  즉 Jar 로 선택하면 View 를 볼 수 없다.


    * DevTool 은 말 그대로 개발시 편의를 주는 툴이다. 따라서 운영배포시는 포함되지 않도록 Gradle or Maven 설정이 필요하다. 

    기선님 유튜브 강의

    https://www.youtube.com/watch?v=5BhWpx7RW-w


    H2 를 선택하면  어떤 설정도 필요 없이 바로 Spring-boot 실행이 된다. 


     DB 를 Maria 사용한다면 다음과 같은 설정이 필요하다. 

    --------------------------------------------------------------------------------------------------------------------------------

    <pom.xml> 에 추가할 내용


    <!-- mariaDB -->

    <dependency>

    <groupId>org.mariadb.jdbc</groupId>

    <artifactId>mariadb-java-client</artifactId>

    <version>1.5.7</version>

    </dependency>


    application.properties 파일에 설정 내용 

    # DB 연결 설정 (마리아DB 사용시) 

    spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/dhkim

    spring.datasource.driverClassName=org.mariadb.jdbc.Driver

    spring.datasource.username=test

    spring.datasource.password=test1234


    spring.datasource.tomcat.max-active=20

    spring.datasource.tomcat.max-idel=5 


    spring.jpa.show-sql=true

    # Hibernate ddl auto (create, create-drop, update): with "create-drop" the database

    # schema will be automatically created afresh for every start of application

    spring.jpa.hibernate.ddl-auto=create


    # Allows Hibernate to generate SQL optimized for a particular DBMS

    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect



    전체 설정 

    https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

    --------------------------------------------------------------------------------------------------------------------------------


    위와 같이 설정하고 spring boot 시작 테스트 

    : 혹시 의존성 문제가 생기면   프로젝트 폴더에 우클릭해서  maven update 해보기 


    프로젝트 트리  

    : 프로젝트 root 이하 

    내가 가장 익숙한 패키지 구조이니 상황에 따라 변경해서 사용.

    - web :  controller  모음 ,  swagger 로 노출할 컨트롤러는 모두 여기에 

    - domain :  실제 DB 와 대응하는 클래스 

    - model : VO 클래스 ,  DTO(=form) 클래스( = 검색 or 사용자 데이터 전송에 대응하는 클래스) 

    - service : 해당 서비스의 비지니스 로직 ,  하위에 impl 폴더 만들어서 구현체 작성 

    - dao :  CRUD 처리 ,  통상 JapRepository 상속받은 인터페이스 


    이후 작성 순서 

    1. domain  아래 테이블 정의 

    import java.io.Serializable;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="User")
    public class User implements Serializable {
    	 
    
    	@Id
    	@Column(name="seq")
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	private long seq;
    
    	@Column(name="name",length=30)
    	private String name;
    
    	... getter setter..
    
    }
    


    2. dao 작성 

    import org.springframework.data.jpa.repository.JpaRepository; public interface UserDao extends JpaRepository<User, long> { }


    3. 컨트롤러 작성 

    @RestController

    @RequestMapping("/user")

    public class UserController {


    @Autowired

    private UserDao userDao;

    @GetMapping("/{index}")

    public User get(HttpServletRequest req , @PathVariable long index) {

    return userDao.findOne(index);

    }

    @PostMapping("/")

    public User create(HttpServletRequest req , User user) {

    return userDao.save(user);

    }

    }


    여기까지 작성하고 post 로  submit 테스트 및  get 조회 테스트 

    http://localhost:8080/user  post로 

    http://localhost:8080/user/1   하면 json 리턴 되어야함 


    그외 다양한 spring-boot 샘플 코드 링크



    'Spring' 카테고리의 다른 글

    Spring-boot , thymeleaf 사용하기  (1) 2019.09.08
    spring boot 배너만들기  (0) 2018.07.13
    spring batch  (0) 2016.01.13
    Spring MVC view-controller 설정 시 redirection 하는 방법  (0) 2015.07.07
    Spring MVC + Sitemesh 사용하기  (1) 2009.12.23

    댓글

Designed by Tistory.