在公司搞了一个多月的前端开发,突然脑子一热,又想回归看看java。如今,比较流行的框架当属spring boot。从入门级别看,搭建一个spring boot项目比搭建一个spring mvc项目快速很多。因为spirng boot已经对spring家族的产品集成非常高,个人觉得这样高度封装总是有的弊端,深入开发后应该会发现,目前就在demo级别,spring boot确实是个好东西。
首先,你只需创建一个普通maven项目即可,new -- maven project next.... 。完成后,我们随便在网上找个pom文件的信息即可。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.keymobile</groupId>
<artifactId>ttjs</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ttjs</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath />
</parent>
<dependencies>
<!-- 这个是与spirng cloud集成才需要 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 打包必备 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
然后,你会发现spring boot可以有一个配置文件,所以你要建一个rescources文件夹,配置文件名称为application.yml。yml是新的文件形式吧,好像现在挺流行的,所以我也用咯。项目路径如下:
内容如下(可以把#号注释全删掉,我原有代码是没有的):
server:
port: 8081
#给项目强制增加前缀
context-path: /rest
#把项目注册到spirng cloud eureka才会用到
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
spring:
freemarker:
cache: false
#数据源配置信息
datasource:
url: jdbc:mysql://localhost/test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
#启用spirng data jpa信息
jpa:
database: mysql
show-sql: true
#注册到spirng cloud eureka的名称
application:
name: demo
接下来创建项目模块,不一一细说,直接给项目路径结构图:
从图中可以看出,App是整个项目的启动主类。如今spirng boot不需要要外部tomcat,而使用内部集成的tomcat。所以需要一个主类。主类必须放在最外面。因为spring boot是从主类目录开始往下自动扫描。所以在主类父节点的class是不会被spirng boot扫描到的。主类内容(第二个@可以不用,这是用于注册到spring cloud eureka的):
package com.keymobile.ttjs;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
/**
* Hello world!
*
*/
@SpringBootApplication
@EnableEurekaClient
public class App{
public static void main( String[] args ){
SpringApplication.run(App.class, args);
}
}
接下去就跟spirng mvc开发模式一模一样了。另外,附上jpa的代码,这样就能实现Test类的增删改查了:
package com.keymobile.ttjs.jpa;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import com.keymobile.ttjs.entity.Test;
public interface TestJPA extends JpaRepository<Test,String>,JpaSpecificationExecutor<Test>,Serializable{
}