5.创建模块boot-web

2018-07-25  本文已影响15人  893914135dfd

文章到这里我们创建应用模块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.

上一篇 下一篇

猜你喜欢

热点阅读