Spring Boot 初探

Hoking發表於2018-05-14

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。

第一步:建立Maven Project



 src/main/java  程式開發以及主程式入口
 src/main/resources 配置檔案
□ src/test/java  測試程式

第二步:在pom.xml增加如下配置

<!-- 定義公共資源版本 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.6.RELEASE</version>
		<relativePath />
	</parent>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.7</java.version>
	</properties>
	
	<dependencies>
		<!-- 包含 mvc,aop 等jar資源 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

第三步:在src/main/resources下建立application.yml

server:
  port: 8080
  context-path: /Demo

第四步:建立DemoController

@RestController
public class DemoController {

	@GetMapping("/hello")
	public Response hello(){
		Response response = new Response();
		response.setCode("000000");
		response.setMessage("成功應答");
		response.setResData(null);
		return response;
	}
}

第五步:建立啟動SpringbootApplication類

@SpringBootApplication
public class SpringbootApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootApplication.class, args);
	}
}

執行Run As ----> Java Application  啟動服務。


以上演示沒有涉及資料庫的操作,下面介紹資料庫的相關操作。首先我們先了解一下JPA。

      JPA顧名思義就是Java Persistence API的意思,是JDK 5.0註解或XML描述物件-關係表的對映關係,並將執行期的實體物件持久化到資料庫中。

JPA優勢

標準化 

      JPA 是 JCP 組織釋出的 Java EE 標準之一,因此任何聲稱符合 JPA 標準的框架都遵循同樣的架構,提供相同的訪問API,這保證了基於JPA開發的企業應用能夠經過少量的修改就能夠在不同的JPA框架下執行。

容器級特性的支援  

      JPA框架中支援大資料集、事務、併發等容器級事務,這使得 JPA 超越了簡單持久化框架的侷限,在企業應用發揮更大的作用。

簡單方便
      JPA的主要目標之一就是提供更加簡單的程式設計模型:在JPA框架下建立實體和建立Java 類一樣簡單,沒有任何的約束和限制,只需要使用 javax.persistence.Entity進行註釋,JPA的框架和介面也都非常簡單,沒有太多特別的規則和設計模式的要求,開發者可以很容易的掌握。JPA基於非侵入式原則設計,因此可以很容易的和其它框架或者容器整合。
查詢能力
      JPA的查詢語言是物件導向而非面向資料庫的,它以物件導向的自然語法構造查詢語句,可以看成是Hibernate HQL的等價物。JPA定義了獨特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一種擴充套件,它是針對實體的一種查詢語言,操作物件是實體,而不是關聯式資料庫的表,而且能夠支援批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高階查詢特性,甚至還能夠支援子查詢。
高階特性

      JPA 中能夠支援物件導向的高階特性,如類之間的繼承、多型和類之間的複雜關係,這樣的支援能夠讓開發者最大限度的使用物件導向的模型設計企業應用,而不需要自行處理這些特性在關聯式資料庫的持久化。

第一步:pom.xml增加需要依賴的jar配置,本例使用mysql資料庫

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

第二步:修改rc/main/resources下application.yml檔案

server:
  port: 8080
  context-path: /Demo
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/demo
    username: root
    password: root
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

第三步:建立UserRespository

import com.mahaochen.demo.domain.User;

@Repository("userRespository")
public interface UserRespository extends JpaRepository<User, String>{

}
第四步:建立demoService
@Service("demoService")
public class DemoServiceImpl implements IDemoService {

	@Resource(name="userRespository")
	private UserRespository  userRespository;
	
	@Override
	public List<User> findAll() {
		
		return userRespository.findAll();
	}

}

第五步:修改DemoController

@RestController
public class DemoController {

	@Resource(name="demoService")
	private IDemoService demoService;
	
	@GetMapping("/hello")
	public Response hello(){
		Response response = new Response();
		response.setCode("000000");
		response.setMessage("成功應答");
		response.setResData(demoService.findAll());
		return response;
	}
}

執行Run As ----> Java Application  啟動服務。

相關文章