一、Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

二、Spring Boot 在配置上面都做了很多的简化。配置文件在resource目录里面,会自动做加载,优先resource下面的config目录配置文件加载,并且,spring-boot里面提供了许多相关的配置包,不需要在像mvc那样配置很多的 配置文件

三、JPA这里我不多做介绍,可以参考,我原来通过springmvc和spring-data-jpa的整合:http://www.cnblogs.com/ll409546297/p/6992188.html

四、这里介绍spring-boot和JPA的相关配置(简易配置)。看一下目录结构

五、pom. 配置

 

<?  version="1.0" encoding="UTF-8"?><project  ns="http://maven.apache.org/POM/4.0.0"          ns:xsi="http://www.w3.org/2001/ Schema-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.troy</groupId>    <artifactId>springboot</artifactId>    <version>1.0-SNAPSHOT</version>    <parent>        <groupId>org.spring work.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.6.RELEASE</version>    </parent>    <dependencies>        <dependency>            <groupId>org.spring work.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>            <version>1.5.6.RELEASE</version>        </dependency>        <dependency>            <groupId>org.hibernate</groupId>            <artifactId>hibernate-core</artifactId>            <version>5.2.6.Final</version>        </dependency>        <dependency>            <groupId>org.hibernate</groupId>            <artifactId>hibernate-entitymanager</artifactId>            <version>5.2.6.Final</version>        </dependency>        <dependency>            <groupId>org.hibernate.javax.persistence</groupId>            <artifactId>hibernate-jpa-2.1-api</artifactId>            <version>1.0.0.Final</version>        </dependency>        <dependency>            <groupId>org.spring work.boot</groupId>            <artifactId>spring-boot-starter-data-jpa</artifactId>            <version>1.5.6.RELEASE</version>        </dependency>        <dependency>            <groupId>org.spring work.boot</groupId>            <artifactId>spring-boot-autoconfigure</artifactId>            <version>1.5.6.RELEASE</version>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-Java</artifactId>            <version>5.1.9</version>        </dependency>    </dependencies></project>

注释:里面的一些包可以不用加入,结合自己进行增删包

六、yml配置部分,这里只需要配置需要的部分,idea会根据提示来。

server:  port: 8080spring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://localhost:3306/model?useUnicode=true&amp;characterEncoding=utf8    username: root    password: root  jpa:    show-sql: true    hibernate:      ddl-auto: update

七、配置启动入口application把这个类放到目录的最外层,他会自动扫描相应的子包

package com.troy.boot;import org.spring work.boot.SpringApplication;import org.spring work.boot.autoconfigure.SpringBootApplication;import org.spring work.boot.web.support.SpringBootServletInitializer;@SpringBootApplicationpublic class Application extends SpringBootServletInitializer{    public static void main(String[] args) {        SpringApplication.run(Application.class,args);    }}

八、针对于entity、dao层进行控制的配置

package com.troy.boot.config;import org.spring work.boot.autoconfigure.domain.EntityScan;import org.spring work.context.annotation.Configuration;import org.spring work.data.jpa.repository.config.EnableJpaRepositories;@Configuration@EnableJpaRepositories( Packages = "com.troy.boot.repository")@EntityScan( Packages = "com.troy.boot.entity")public class DataSourceConfig {}

注意:这里也提供了@Configuration来配置具体属性,当然这是jpa提供的

九、entity层

package com.troy.boot.entity;import javax.persistence.*;@Entity@Table(name = "USER")public class User {    @Id    @Column(name = "ID")    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    @Column(name = "NAME")    private String name;    @Column(name = "AGE")    private String age;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }}

十、repository层

Repository.class

package com.troy.boot.repository;import org.spring work.data.jpa.repository.JpaSpecificationExecutor;import org.spring work.data.repository.NoRepositoryBean;import org.spring work.data.repository.PagingAndSortingRepository;import java.io.Serializable;@NoRepositoryBeanpublic interface  Repository<T,I extends Serializable> extends PagingAndSortingRepository<T,I>,JpaSpecificationExecutor<T>{}
UserRepository.class
package com.troy.boot.repository;import com.troy.boot.entity.User;public interface UserRepository extends  Repository<User,Long> {}

十一、service层

package com.troy.boot.service;import com.troy.boot.entity.User;import java.util.List;public interface UserService {    /**     * 查询全部用户     * @return     */    public List<User> queryUsers();}

Impl

package com.troy.boot.service.Impl;import com.troy.boot.entity.User;import com.troy.boot.repository.UserRepository;import com.troy.boot.service.UserService;import org.spring work.beans.factory.annotation.Autowired;import org.spring work.data.jpa.domain.Specification;import org.spring work.stereotype.Service;import javax.persistence.criteria.CriteriaBuilder;import javax.persistence.criteria.CriteriaQuery;import javax.persistence.criteria.Predicate;import javax.persistence.criteria.Root;import java.util.ArrayList;import java.util.List;@Servicepublic class UserServiceImpl implements UserService {    @Autowired    private UserRepository userRepository;    @Override    public List<User> queryUsers() {        Specification<User> specification = new Specification<User>() {            @Override            public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder cb) {                List<Predicate> querys = new ArrayList<Predicate>();                Predicate[] predicates = new Predicate[querys.size()];                return cb.and(querys.toArray(predicates));            }        };        List<User> list = userRepository.findAll(specification);        return list;    }}

十二、controller层

package com.troy.boot.controller;import com.troy.boot.entity.User;import com.troy.boot.service.UserService;import org.spring work.beans.factory.annotation.Autowired;import org.spring work.web.bind.annotation.RequestMapping;import org.spring work.web.bind.annotation.RestController;import java.util.List;@RestController@RequestMapping(value = "/api/login")public class LoginController {    @Autowired    private UserService userService;    @RequestMapping(value = "/init")    public String init() {        return "hello world!";    }    @RequestMapping(value = "/queryUsers")    public List<User> queryUsers() {        return userService.queryUsers();    }}

基本上的spring-boot加JPA的配置和使用过程就这个样子了。spring-boot的使用主要是在高效和应用方面。能很好的使用相应的功能,并且简化配置

 

收藏 打印