5.创建模块boot-web
文章到这里我们创建应用模块boot-web,用它依赖boot-dao和boot-model,去实现几个具体的读写操作。
图一 检查模块创建参数
【注意】图一中的package 建议保存为com.demo。由于后面的改造,又把web目录去掉了,所以直接在这里不写就会省掉很多麻烦。
图二 注意应用模块的选择
图三 确认
图四 创建完毕后的结构
老一套,我们来对boot-web 进行改造。
图五 改造后的结构
看图五,我们改造了四个地方。下面将列出他们的文件。
1.文件目录 src/main/java/com/demo/Application.java
package com.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.文件目录 src/main/resources/application.yml
server:
# 配置端口
port: 8080
# 项目启动地址为 localhost:8080/
servlet:
context-path: /
spring:
# 数据库配置
datasource:
# 数据库地址
url: jdbc:mysql://localhost:3306/bootdb?autoReconnect=true&useUnicode=true&characte&characterEncoding=utf8&allowMultiQueries=true&useSSL=true
# 账号
username: root
# 密码
password: admin321
# 指定driver的类名,默认从jdbc url中自动探测
driver-class-name: com.mysql.jdbc.Driver
# 指定连接的超时时间,毫秒单位
connection-timeout: 60000
# 指定连接数据库的超时时间
login-timeout: 60000
3.文件目录 src/test/java/com/demo/ApplicationTests.java
package com.demo;
import com.demo.dao.mapper.AdminUserDaoMapper;
import com.demo.model.db.AdminUser;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {
@Autowired
public AdminUserDaoMapper adminUserDaoMapper;
@Test
public void insert(){
AdminUser user = new AdminUser();
user.setLoginNo("david-zhou");
user.setPassword("123456");
user.setNickname("zdw");
user.setSex("man");
user.setRemark("ddddddddddddddddddddddddddddddd");
adminUserDaoMapper.insert(user);
}
}
4.改造boot-web的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>boot-parent</artifactId>
<groupId>com.demo</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>boot-web</artifactId>
<name>boot-web</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.demo</groupId>
<artifactId>boot-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.demo</groupId>
<artifactId>boot-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.demo.Application</mainClass>
<layout>JAR</layout>
<fork>true</fork>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
改造完毕,我们启动下boot-web项目,运行Application.java的main方法即可:看到图六spring的logo和日志中started on 8080,恭喜你改造很成功。
图六 启动boot-web
我们接着测试一下数据访问,前提是你得自己去建表,从上文application.yml中可以知道我的数据库:bootdb , 数据库访问账号 和 密码 根据读者自己设置的来修改。建表请参照boot-model 实体AdminUser属性去创建table : admin_user:
图七 数据库bootdb
没有数据,接着我们运行测试方法,前面改造的文件中已经弄好。直接运行:
图八 运行测试方法
可以看到,测试方法运行是成功的。
图九 数据库新增数据
看图九,我们测试的数据已经插入到了数据库。说明boot-web 依赖boot-dao 和 boot-model 也是成功,实现了数据库访问的操作。
到现在,读者们是否明白模块之前是如何依赖的呢? 想必仔细看过pom.xml文件的读者,大概明白了其中缘由。pom.xml不仅管理着我们对jar包的引入,还管理着我们对其他模块的引入。可以再看看pom.xml的依赖管理。
对于web改造还有很多东西要做。下一篇,我们演示controller.