利用idea构建spring boot多项目(四)

发布时间:2018-07-11 浏览次数:2344 文章来源:个人博客

之前我们已经能运行输出hello world了,但是只是web模块而且,其他模块还没有运用上,而且,还没有连接数据库呢,所以这里将讲整体的运用。

首先:

在web模块中的pom.xml引入mysql的包。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

接着,在resources中,新增properties配置文件:

jpa1.png

其中:application.properties的代码:

#目的是根据开发环境的不同,调用不同的配置文件
spring.profiles.active=dev 
#spring.profiles.active=test
#spring.profiles.active=production


spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=Asia/Chongqing

application-dev.properties的配置:

#本地运行时候的端口号,打包发布不一定,根据服务器配置而定。
server.port=9095

#连接数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.properties.hibernate.hbm2ddl.auto=none
#validate

 #JPA Configuration:  
spring.jpa.database=MYSQL
# Show or not log for each sql query
spring.jpa.show-sql=false
spring.jpa.generate-ddl=true
spring.jpa.open-in-view=false
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto=none
#spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect  
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
#spring.jpa.database=org.hibernate.dialect.MySQL5InnoDBDialect 
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

spring.mvc.view.prefix= /page/
spring.mvc.view.suffix= .html

这样,数据库的链接配置基本完成。

接下来,我们利用JPA实现数据库和对象的映射关系。

在model模块、dao模块,pom.xml中引入JPA依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

同时,在model模块中创建目录com.demo.model目录,在dao模块中创建目录 如图:

jpa2.png

然后,根据数据库的表,建立模型,比如数据库中有个user表,有id和name两个字段,那么我们在com.demo.model下面建立实体类:User

代码如下:

package com.demo.model;

import javax.persistence.*;

//声明实体类
@Entity
//表名
@Table(name="user")
public class User {
    //字段
    @Id
    @Column(name="id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    //字段
    @Column(name="name")
    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

然后,在dao模块实现数据读取,先在com.demo.repository中创建UserRepository接口,利用jpa的自带方法实现数据读取,具体代码:

package com.demo.repository;

import com.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository, JpaSpecificationExecutor,PagingAndSortingRepository {

    public User getById(Integer id);

}

接下来,就是业务层(service)的事情了。

如图所示,创建相关目录:

jpa3.png

其中,IUserService的代码:

package com.crd.op.service;

import com.crd.op.model.User;

public interface IUserService {

    public User getUser(Integer id);
}

UserService的代码:

package com.crd.op.service.impl;

import com.crd.op.model.User;
import com.crd.op.repository.UserRepository;
import com.crd.op.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService  implements IUserService {
    //获取dao层对应的repository
    @Autowired
    private UserRepository userRepository;

    //实现IUserService的接口
    @Override
    public User getUser(Integer id) {
        return userRepository.getById(id);
    }
}

至此,业务层的实现也完成了。

最后,我们用controller来调用service层的接口。

我们继续在之前的IndexController中,加入:

//业务层接口
@Autowired
private IUserService iUserService;

//方法
@RequestMapping(value = "/userInfo")
@ResponseBody
public User UserInfo(Integer id){
    return iUserService.getUser(id);
}

这样,全部的代码流程都走完了。。


我们运行代码,访问:localhost:9095/userInfo?id=1,即可查出id为1的用户信息。

key-word
springboot多项目 多项目构建 spring boot 多项目