작년에 나는 다양한 채널에서 얼마나 편리하고 빠른 스프링 부팅이 개발되었는지에 대해 약간 이해했습니다. 그러나 나는 그 당시 열심히 공부하지 않았다. 결국, 나는 Struts와 SpringMVC에 능숙하지 않다고 느꼈습니다. 그러나 SpringBoot에 대한 많은 소개를 읽은 후에는 생각만큼 어렵지 않았기 때문에 SpringBoot를 배울 준비를 시작했습니다. 여가 시간에는 SpringBoot 실제 전투와 SpringBoot에 관한 일부 마스터 블로그를 읽은 후 첫 번째 SpringBoot 프로젝트를 작성하기 시작했습니다. RESTFul 스타일 인터페이스의 간단한 개발로 SpringBoot에서 CRUD 기능을 구현 한 후이 블로그 게시물이 만들어졌습니다.
SpringBoot 소개
Spring Boot는 Pivotal Team이 제공하는 새로운 프레임 워크입니다. 새로운 스프링 애플리케이션의 초기 구성 및 개발 프로세스를 단순화하도록 설계되었습니다. 이 프레임 워크는 특정 방법을 사용하여이를 구성하여 개발자가 더 이상 보일러 플레이트 구성을 정의 할 필요가 없습니다.
간단히 말해서, 몇 개의 항아리와 간단한 구성으로 프로젝트를 신속하게 개발할 수 있습니다.
단순히 외부 인터페이스를 개발하려면 다음 코드 만 있으면됩니다.
주요 프로그램은 SpringBoot를 시작합니다
@SpringBootApplicationPublic Class Application {public static void main (String [] args) {springApplication.run (application.class, args); }}제어 계층
@RestControllerPublic Class HelloWorldController {@requestmapping ( "/hello") public String index () {return "Hello World"; }}기본 프로그램을 성공적으로 시작한 후 제어 계층을 작성한 다음 http : // localhost : 8080 // 브라우저에 Hello를 입력하여 정보를보십시오.
SpringBoot를 사용하여 프로그램을 개발하는 것이 매우 간단하다고 생각합니다!
SpringBoot의 실제적인 단어 :
여기에는 구성이없고 Web.xml, 빌드 지침 및 응용 프로그램 서버도 없지만 전체 응용 프로그램입니다. SpringBoot은 응용 프로그램을 실행하는 데 필요한 모든 물류를 수행하며 응용 프로그램의 코드를 가져와야합니다.
SpringBoot를 기반으로 편안한 서비스를 개발하십시오
프로그램을 개발하기 전에 몇 가지 준비를해야합니다
데이터베이스`springboot` auto_increment = 12 기본 charset = utf8;
SpringBoot의 가장 핵심 항아리
스프링 부트 스타터 : 자동 구성 지원, 로깅 및 YAML을 포함한 코어 모듈;
<부모> <groupid> org.springframework.boot </groupid> <artifactid> Spring-boot-starter-parent </artifactid> <bersion> 1.5.9. release </version> <aperativepath/> </parent> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceoding <java.version> 1.7 </java.version> <mybatis-spring-boot> 1.2.0 </mybatis-spring-boot> <mysql-connector> 5.1.39 </mysql-connector> </properties> <pecient <pecients> <guplency> <groupid> org.springframwork. <artifactid> Spring-Boot-starter-web </artifactid> </fectionency> <pectomency> <groupid> org.springframework.boot </groupid> <atifactid> spring-boot-starter-thymeleaf </artifactid> </dependency> <groupid> org.springfringframwork. <Artifactid> Spring-Boot-Starter-Data-JPA </artifactid> </fectionency> <pectomency> <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-devtools </artifactid> 옵션> true </옵션> <pelection> <GroupSpring> org.spr) <Artifactid> Spring-Boot-starter-test </artifactid> <artifactid> </scope> test </scope> </fectionency> <!-스프링 부트 mybatis 종속성-> <pectionency> <groupid> org.mybatis.spring.boot </groupIcid> mybatis-spring-boot-starter </artifactid> <버전> $ {myBatis-spring-boot} </version> </fectionement> <!-MySQL 연결 드라이버 종속성-> <groupId> mysql </groupId> <artifactId> mysql-connector-java </artifactid> <version> $ {mysql-connector} </version> </deptionement> </version> <!-SpringBoot 플러그인을 사용하여 Spring-Boot-DevTools 모듈 응용 프로그램을 사용하십시오. ClassPath의 파일이 변경되면 자동으로 다시 시작됩니다! -> <flugin> <groupid> org.springframework.boot </groupid> <artifactid> Spring-Boot-maven-Plugin </artifactid> <fuk> true </fork> </configuration> </plugin> </plugins> </build> com.pancm.web- 컨트롤러 계층
com.pancm.dao- 데이터 운영 계층 dao
com.pancm.bean- 엔티티 클래스
com.pancm.bean.service- 비즈니스 로직 계층
응용 프로그램 - 응용 프로그램 시작 클래스
Application.Properties- 응용 프로그램 구성 파일, 구성은 응용 프로그램 시작에서 자동으로 읽습니다.
일반적으로 application.properties를 사용하여 구성 할 수있는 JDBC의 연결 구성 구성과 같은 몇 가지 사용자 정의 구성이 필요합니다. 데이터 소스의 실제 구성에는 모든 사람이 적용됩니다.
## 데이터 소스 구성 spring.datasource.url = jdbc : mysql : // localhost : 3306/springboot? useUnicode = true & charac mybatis configuration# com.pancm.bean으로 구성된 엔티티 클래스 패키지 경로를 가리키십시오. mybatis.typealiasespackage = com.pancm.bean# classpath 경로에서 Mapper 패키지를 구성하면 모든 XML 파일이 스캔됩니다. mybatis.mapperlocations = classpath/: mapper/*. xml
키 코드에 올 때가 거의 시간입니다.
우리는 데이터베이스의 t_user 테이블에 해당하는 pojo 클래스를 작성하는 것으로 시작합니다.
코드는 다음과 같습니다
공개 클래스 사용자 { / ** 숫자* / private int id; / ** 이름*/ 개인 문자열 이름; / ** Age*/ Private Int Age; public user () {} 공개 클래스 사용자 { / ** 숫자* / private int id; / ** 이름*/ 개인 문자열 이름; / ** Age*/ Private Int Age; public user () {} // getter and setter 생략}이전 DAO 계층에서 최대 절전 모드와 Mybatis는 주석 또는 맵퍼 구성 파일을 사용할 수 있습니다. 여기서 우리는 Spring의 JPA를 사용하여 CRUD를 완료합니다.
설명 :
CRUD 및 데이터베이스 구현을 구현하는 두 가지 방법이 있습니다.
첫 번째는 XML의 Mapper 구성입니다.
두 번째 유형은 주석, @insert, @select, @update, @delete 및 기타 주석을 사용하는 것입니다. 이 기사는 두 번째 유형을 사용합니다
import org.apache.annotations.delete; import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.mapper; import org.apache.ibatis.annotations.result; import org.apache.annotations.results; import org.apache.ibatis.annotation org.apache.ibatis.annotations.update; import org.springframework.data.repository.query.param; import com.pancm.bean.user; @mapperpublic interface userdao { / *** 사용자 데이터 추가* / @insert ( "t_user (id, name, age) 값 삽입 (#{id},#{name},#{age}) ") void adduser (사용자); / *** 사용자 데이터 수정*/ @update ( "업데이트 t_user set name =#{name}, age =#{age} 여기서 id =#{id}") void updateUser (사용자 사용자); / *** 사용자 데이터 삭제*/ @delete ( "id =#{id}"void deleteuser (int id); / *** 사용자 이름을 기반으로 한 사용자 정보 쿼리*/ @select ( "id, name, t_user에서 나이 선택 선택") // 반환 맵 결과 세트 @results ({@result (property = "id", column = "id"), @result (property = "name", column = "name"), @result (property = "age"), @param ( "}))), usevername" ")). 사용자 이름); / *** 사용자 ID를 기반으로 한 사용자 정보 쿼리*/ @Select ( "선택, 이름, t_user에서 나이") 사용자 findById (@param ( "id") int userId); / *** 사용자 AGE*/ @Select를 기반으로 한 사용자 정보 쿼리 ( "ID, 이름 선택, 이름, Age에서 나이가 나이 = #{userage}") 사용자 findByage (int userage);}이 인터페이스에서 사용하는 주석에 대한 개인적인 이해 :
Mapper :이 주석이 인터페이스에 추가 되어이 인터페이스가 주석을 기반으로 구현 된 CRUD임을 나타냅니다.
결과 : 반환 된 맵 결과 세트, 속성은 사용자 클래스의 필드를 나타내고 열은 해당 데이터베이스의 필드를 나타냅니다.
PARAM : SQL 조건의 필드.
삽입, 선택, 업데이트, 삭제 : 해당 데이터베이스를 모집, 수정 및 삭제합니다.
이것은 기본적으로 최대 절전 모드 및 mybatis와 동일합니다.
코드는 다음과 같습니다.
인터페이스
import com.pancm.bean.user;/**** 제목 : UserserVice* 설명 : 사용자 인터페이스* 버전 : 1.0.0* @author pancm* @date 2018 년 1 월 9 일*/public interface userervice {/*** @param user* @return*/boolean adduser (사용자 사용자); / ** * 사용자 수정 * @param user * @return */ boolean updateUser (사용자 사용자); / ** * 사용자 삭제 * @param id * @return */ boolean deleteuser (int id); / *** 사용자 이름을 기반으로 쿼리 사용자 정보* @param username*/ user findUserByName (String username); / *** 사용자 ID* @Param userId*/ user findUserById (int userId)를 기반으로 한 사용자 정보 쿼리; / *** 사용자 id* @param userage*/ user findUserByage (int userage)를 기반으로 한 사용자 정보 쿼리;}구현 클래스
import org.springframework.bean.beans.annotation.autowired; import org.springframework.stereotype.service; import com.pancm.bean.user; import com.pancm.dao.userdao; import com.pancm.service.userservice;/*** title* user operation upportment : 1. @author pancm* @date 2018 년 1 월 9 일*/ @servicepublic class usererviceimpl emperservice {@autowired private userdao userdao; @override public boolean adduser (사용자 사용자) {boolean flag = false; try {userdao.adduser (user); flag = true; } catch (예외 e) {e.printstacktrace (); } 반환 플래그; } @override public boolean updateUser (사용자 사용자) {boolean flag = false; try {userdao.updateuser (user); flag = true; } catch (예외 e) {e.printstacktrace (); } 반환 플래그; } @override public boolean deleteuser (int id) {boolean flag = false; try {userdao.deleteuser (id); flag = true; } catch (예외 e) {e.printstacktrace (); } 반환 플래그; } @override public user findUserByName (String username) {return userDao.FindByName (username); } @override public user findUserById (int userId) {return userDao.FindById (userId); } @override public user findUserByage (int userage) {return userDao.findByage (userage); }}제어층은 SpringMVC와 매우 유사하지만 그보다 훨씬 간단합니다.
제어층에 대한 주석에 대한 개인적인 이해는 다음과 같습니다.
RestController : 기본 클래스의 메소드는 JSON 형식으로 반환됩니다.
RequestMapping : 인터페이스 경로 구성.
방법 : 요청 형식.
RequestParam : 요청 매개 변수입니다.
특정 구현은 다음과 같습니다.
import org.springframework.bean.beans.annotation.autowired; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod; import org.springframework.bind.bind.annotation.requestparam; org.springframework.web.bind.annotation.restcontroller; import com.pancm.bean.user; import com.pancm.service.userservice.userservice;/**** 제목 : userrestcontroller* 설명 :* 사용자 데이터 운영 인터페이스* @author pancm* @date 9, 2018*/ @restcontmapting ( @restcontmapting). "/API/USER") 공개 클래스 USERRESTCONTROLLER {@autowired private userervice userErvice; @requestmapping (value = "/adduser", method = requestmethod.post) public boolean addUser (사용자) {System.out.println ( "Add the Start ..."); return userervice.adduser (user); } @requestMapping (value = "/updateUser", method = requestMethod.put) public boolean updateUser (사용자) {System.out.println ( "업데이트 시작 ..."); return userervice.updateuser (user); } @requestmapping (value = "/deleteuser", method = requestmethod.delete) public boolean delete (@requestparam (value = "username", required = true) int userid) {system.out.println ( "시작 삭제 ..."); return userervice.deleteuser (userId); } @requestmapping (value = "/username", method = requestmethod.get) 공개 사용자 findByUserName (@requestParam (value = "username", required = true) string username) {system.out.println ( "start query ..."); return userervice.finduserByName (사용자 이름); } @requestmapping (value = "/userId", method = requestMethod.get) 공개 사용자 findByUserId (@requestParam (value = "userId", resight = true) int userId) {System.out.println ( "시작 쿼리 ..."); return userService.finduserByid (userId); } @requestmapping (value = "/userage", method = requestmethod.get) 공개 사용자 findByUserage (@requestparam (value = "userage", resight = true) int userage) {system.out.println ( "시작 쿼리 ..."); return userervice.finduserByid (userage); }}SpringApplication은 기본 방법에서 스프링 애플리케이션을 시작하는 데 사용되는 클래스입니다.
기본적으로 다음 단계를 수행합니다.
1. 적절한 ApplicationContext 인스턴스를 만듭니다 (classpath에 따라).
2. 명령 줄 매개 변수를 스프링 속성으로 사용하려면 CommandLinePropertySource를 등록하십시오.
3. 응용 프로그램 컨텍스트를 새로 고치고 모든 싱글 톤 콩을로드하십시오.
4. 모든 CommandLinerUnner Bean을 활성화하십시오.
Main을 사용하여 직접이 클래스를 시작하면 SpringBoot가 자동으로 구성됩니다.
추신 : 지금도 여전히 이것이 정말 놀랍다고 생각합니다.
이 수업에 대한 일부 주석이 설명되어 있습니다. :
SpringBootApplication : 구성 요소 스캔 및 자동 구성을 켜십시오.
Mapperscan : Mapper 인터페이스 클래스 스캔 패키지 구성
코드는 다음과 같습니다.
import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication;/*** 제목 : 응용 프로그램 :* SpringBoot Main Program : 1.0.0* @authorancm 폴로 란드 2018*/@springbootApplication@mapperscan ( "com.pancm.dao") 공개 클래스 응용 프로그램 {public static void main (string [] args) {// 내장 된 Tomcat을 시작하고 스프링 환경과 스프링 구성 요소 SprownApplication.run (Application.class, Args); System.out.println ( "프로그램이 실행 중 ..."); }}코드가 작성된 후 코드 테스트를 수행합니다.
응용 프로그램을 시작한 후 Postman 도구를 사용하여 인터페이스를 테스트하십시오.
테스트 결과는 다음과 같습니다.
여기에서 하나의 Get 및 Post 테스트 만 사용됩니다. 실제 방법은 테스트되었지만지도를 고수 할 필요가 없다고 생각합니다.
프로젝트를 Github에 넣었습니다.
https://github.com/xuwujing/springboot
요약
위의 내용은 SpringBoot를 기반으로 편안한 서비스를 개발하기위한 편집자의 소개입니다. 추가, 삭제, 수정 및 확인 기능을 구현합니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!