前面完成了ssm的整合, 整个过程可以说很繁杂, 各种配置, 很容易让人晕掉.
这里使用spring boot 的方式来实现 ssm(1) 中的功能.
一. 建项目
1. 使用 idea 来创建 spring boot 项目, 是比较简单的, 如果使用eclipse的话, 要装插件, 比较麻烦, 那这里, 就直接使用idea来做吧
2. 这里只需要修改下面圈出来的部分. Java Version最好使用>=8.
3. 这里直接选择web就可以了, 缺什么, 可以在后面加就好
4. 选择路径
经过这么几步操作, 就完成了基本的新建工作.
在新建的过程中, 可能会非常的慢, 因为第一次建, 要下载很多jar包. 而且可能下载还比较慢.
这里可以在maven 的 setting.xml文件中, 加入一个阿里云的镜像, 对于下载更新jar包, 是有帮助的.
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors>
二. 目录结构
拿到刚建的项目后, 我在里面新增了几个package. 在这里, 除了controller要建之外, 别的都可以先空着.
三. 配置文件 -- 这一步直接跳过, 也是能正常运行的. 不急的话, 就先看看这里把
默认的配置文件是 application.properties, 这里我并没有使用这个格式的文件, 而是使用了 yml 格式的文件, 配置起来, 更加的简洁, 且效果是一样的.
先来看一下application.yml文件
#标明引入那个配置文件
spring:
profiles:
active: dev
#自定义属性
elvin:
name: elvinle
age: 28
birthday: 1990-12-02
#自定义属性
content: "elvin's name is ${elvin.name} and age is ${elvin.age} and birthday is ${elvin.birthday}"
开发的过程中, 可能会部署到好几个环境, 比如开发环境, 测试环境, 那么这里的spring.profiles.active就起作用了, 可以新建多个文件, 这里配置, 后面使用哪个文件的配置.
再来看看application-dev.yml文件
#配置项目端口和根路径 server: port: 8080 context-path: /boot spring: #配置项目的数据库链接信息 datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql:///test?useUnicode=true&characterEncoding=utf-8 username: root password: root jpa: hibernate: ddl-auto: update show-sql: true
server.port 和 server.context-path 分别表示端口和根路径. 它们都是可以不配置的. 后面的配置, 暂时不用看
在这两个文件中, 可以看到, 我定义了自己的属性. 那么他们怎么接收呢
在目录中, 有个properties的文件夹, 我在里面建了个类来接收
package org.elvin.boot.properties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * author: Elvin * Date: 2017/12/4 15:10 * Description: */ @Component @ConfigurationProperties(prefix = "elvin") public class ElvinProperties { private String name; private Integer age; private String birthday; public String getName() { return name; } @Override public String toString() { return "Elvin{" + "name='" + name + '\'' + ", age=" + age + ", birthday='" + birthday + '\'' + '}'; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } }
使用的地方在controller中.
四. 实体类
package org.elvin.boot.pojo; /** * author: Elvin * Date: 2017/12/4 15:37 * Description: */ public class Book { private Integer id; private String name; private String publishTime; private Integer price; @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '\'' + ", publishTime='" + publishTime + '\'' + ", price=" + price + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String