1.添加相应的依赖包
2.需要在application.properties文件添加配置
3.需要创建一个实体类,比如Cat
4.需要创建一个接口继承CrudRepository;
5.需要创建一个Service;
6.需要创建一个Controller;
7.代码测试
<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.kfit</groupId>
<artifactId>spring-boot-hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--Spring boot 父节点依赖,引入这个依赖后想相关的引入就不需要添加version配置,spring boot会自动选择最合适的版本进行添加 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<properties>
<project.build.sourceEconding>UTF-8</project.build.sourceEconding>
<!--指定一下jdk版本 。默认是jdk1.6 -->
<java.version>1.7</java.version>
</properties>
<!--spring-boot-start-web:MVC,AOP的依赖包...... -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- <version></version> 由于我们在上面指定了parent(spring boot) -->
</dependency>
<!-- 添加 fastJson依赖包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
<!--构建节点 -->
<build>
<plugins>
<!-- 在这里添加springloader plugin -->
<!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin
</artifactId> <dependencies> springloaded hot deploy <dependency> <groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId> <version>1.2.4.RELEASE</version> </dependency>
</dependencies> <executions> <execution> <goals> <goal>repackage</goal> </goals>
<configuration> <classifier>exec</classifier> </configuration> </execution>
</executions> </plugin> -->
<!--这是spring boot devtool plugin -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>
########################################################
###datasource -- \u6307\u5b9amysql\u6570\u636e\u5e93\u8fde\u63a5\u4fe1\u606f.
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
########################################################
### Java Persistence Api -- Spring jpa\u7684\u914d\u7f6e\u4fe1\u606f.
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
创建实体类
package com.kfit.demo.bean;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* @author Administrator
* 创建了一个实体类
* 使用@Entity进行实体类的持久化操作,当JPA检测到我们的实体类当中有@Entity注解的时候,会在数据库生成对应的表结构数据
*/
/**
* @author Administrator
* 使用@Id
* 使用@GeneratedValue(straregy=GenerarionType.AUTO)
* 制定主键的
*/
@Entity
public class Cat {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private int id;//主键
private String catName;//姓名
private int catAge;//年龄
public Cat(int id, String carName, int catAge) {
super();
this.id = id;
this.catName = carName;
this.catAge = catAge;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCarName() {
return catName;
}
public void setCarName(String carName) {
this.catName = carName;
}
public int getCatAge() {
return catAge;
}
public void setCatAge(int catAge) {
this.catAge = catAge;
}
public Cat() {
super();
}
}
创建一个接口继承CrudRepository
package com.kfit.demo.repository;
import org.springframework.data.repository.CrudRepository;
import com.kfit.demo.bean.Cat;
/**
*
*/
public interface CatRepository extends CrudRepository<Cat, Integer>{
}
创建一个Service
package com.kfit.demo.service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import org.springframework.stereotype.Service;
import com.kfit.demo.bean.Cat;
import com.kfit.demo.repository.CatRepository;
/**
* @author Administrator
*
*/
@Service
public class CatService {
@Resource
private CatRepository catRepository;
/**
* save ,update ,delete 方法需要事无绑定,
* 使用@Transcational 进行事务的绑定
*/
/**保存数据
* @param cat
*/
@Transactional
public void save(Cat cat){
catRepository.save(cat);
}
/**
* 删除数据
*/
@Transactional
public void delete(int id){
catRepository.delete(id);
}
/**
* 查询数据
* @return
*/
public Iterable<Cat>getAll(){
return catRepository.findAll();
}
}
创建一个Controller
package com.kfit.demo.controller;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.kfit.demo.bean.Cat;
import com.kfit.demo.service.CatService;
@RestController
@RequestMapping("/cat")
public class CatController {
@Resource
private CatService catService;
@RequestMapping("/save")
private String save(){
Cat cat = new Cat();
cat.setCarName("jack");
cat.setCatAge(14);
catService.save(cat);
return "save ok.";
}
@RequestMapping("/delete")
private String delete(){
catService.delete(1);
return "delete ok";
}
@RequestMapping("/getAll")
public Iterable<Cat>getAll(){
return catService.getAll();
}
}
最后的启动类
package com.kfit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
/**
* @author mz
*在这里我们使用@SpringBootAppliction指定这是一个spring的应用程序
*/
@SpringBootApplication
public class App /*extends WebMvcConfigurerAdapter*/ {
/*@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
*//**
*1、需要先定义一个conver转换消息的对象
*2、添加fastjson的配置信息,比如:是否要格式化返回的json数据;
*3、在convert中添加配置信息
*4.将convert添加到converters中
*//*
//1.需要先定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastconverter = new FastJsonHttpMessageConverter();
//2.添加fastjson的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
//是否需要格式化
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//3、在convert中添加配置信息
fastconverter.setFastJsonConfig(fastJsonConfig);
//4.将convert添加到converters中
converters.add(fastconverter);
}*/
/**
* 在这里我们使用@Bean 注入fastJsonHttpMessageConvert
* @return
*/
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
//1.需要先定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2.添加fastjson的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
//3、在convert中添加配置信息
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
/**
*在main方法中启动我们的应用程序
* date: 2017年5月7日 下午4:34:36 <br/>
*/
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}