idea下用spring boot(maven的升级版)搭建SSM微服务环境项目

            简述:今天开始创建springboot式的微服务环境项目,这里重点在于学习,所以也是一步一步的搭建并完善,这里先用普通maven(spring boot)创建单体项目引进,随后再引进dubbo,完成为服务结构。理论方面的这里不做重点说明,先上代码。


1. 新建一个project springboot-demo

1.1)file----->new----->project:

1.2)选择maven,然后直接next:

1.3)填写 GroupId 和 ArtifactId 然后next:

1.4)下一步直接fanish完成:

1.5)记住点击右下角的自动导包:

1.6)在工程下新建module

1.7)选择Spring Initializr ,确认Defult的选择,然后next:

1.8)填写分模块的以下信息,然后next:

1.9)这里需要做web和SQL的选择,如下:

1.10)确认信息后,直接fanish完成:

1.11)分模块ssm建好后,结构如下:

接下来就是一系列更改配置,为的是完善以上SsmApplication.java信息和application.properties配置文件。


2. 配置ssm项目的jar依赖

先看一下ssm的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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.kgc1803</groupId>
    <artifactId>ssm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ssm</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

文件里的父节点如下,可以做深入探究,Ctrl+鼠标左键点击:<artifactId>spring-boot-starter-parent</artifactId>即可进入父节点

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

不过,这里需要把父节点删掉,和下面的自动依赖jar包删掉,用我们自己写的方式来创建。这时候需要检查maven的配置是否正确,不然引不了jar包,快捷键(Ctrl+Alt+S)产看并更改后引入jar包:

  2.1)spring-*.jar

        <!--spring-*.jar-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

  2.2)spring mvc

        <!--spring mvc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

  2.3)mysql 驱动包

        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>

  2.3)mybaties、mybaties-spring、spring-jdbc

        <!--mybaties、mybaties-spring、spring-jdbc-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

   2.4)测试包

        <!--测试包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

    2.5)jsp 页面插件jar包,下面在页面测试的时候是部署到idea内置的tomcat服务器,因此这里需要做一个jsp页面的测试用jar包,idea内置的tomcat才会识别到:

        <!--jsp 页面插件jar包-->
        <!--ideal 内置tomcat不支持jsp,增加jsp jar包-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>9.0.12</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
            <version>9.0.12</version>
            <scope>provided</scope>
        </dependency>

修改后的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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.kgc1803</groupId>
    <artifactId>ssm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ssm</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring.boot.version>2.1.0.RELEASE</spring.boot.version>
        <mybaties.spring.boot.version>1.3.2</mybaties.spring.boot.version>
        <mysql.driver.version>5.1.46</mysql.driver.version>
    </properties>

    <dependencies>
        <!--spring-*.jar-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>${spring.boot.version}</version>
        </dependency>
        <!--spring mvc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring.boot.version}</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.driver.version}</version>
        </dependency>
        <!--mybaties、mybaties-spring、spring-jdbc-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybaties.spring.boot.version}</version>
        </dependency>
        <!--测试包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring.boot.version}</version>
        </dependency>
        <!--jsp 页面插件jar包-->
        <!--ideal 内置tomcat不支持jsp,增加jsp jar包-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>9.0.12</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
            <version>9.0.12</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3. 在spring boot配置文件(application.properties或者application.yml)完成ssm配置。

   3.1)dataSource(驱动、url、用户名、密码)

#dataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/dubbo-smbms?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

   3.2)@Mapper @Service @Controller 等注解spring boot会自动扫描(原因是上面1.9步骤做了web和SQL的选择,有自动的jar包生成工具),不做任何配置。

   3.3)spring mvc配置(视图解析器),但是注解驱动不配置:

#spring mvc
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

   3.4)web.xml 的 spring字符集:

#spring 字符集
spring.http.encoding.charset=UTF-8
spring.http.encoding.force=true
spring.http.encoding.enabled=true

   3.5)tomcat服务器  端口:  字符集:

#服务器
server.port=8081
server.tomcat.uri-encoding=UTF-8

4. 编写pojo实体类,controller业务操作层为后面的jsp页面测试做准备

User.java实体类:
package cn.kgc1803.ssm.pojo;

import java.io.Serializable;

public class User implements Serializable {
    private Integer id;
    private String userCode;
    private String userName;
    private String password;

    public User(){}

    public Integer getId() {
        return id;
    }

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

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

    UserController.java控制器

package cn.kgc1803.ssm.controller;

import cn.kgc1803.ssm.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/user")
public class UserController {

    //登陆
    @RequestMapping(value = "/dologin.html",method = RequestMethod.POST)
    public String dologin(User user, HttpSession session){
        session.setAttribute("session_user",user);
         return "index";
    }
}

         之前在的项目环境可以在web.xml配置文件配置访问首页的设置,现在spring boot环境项目没有web.xml文件,所以,idea内置tomcat服务器启动的时候,无法访问到首页内容地址,这里的解决方法是在controller层写一个控制器直接访问首页即可:

IndexController.java 控制器:
package cn.kgc1803.ssm.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {
    @RequestMapping("/")
    public String index(){
        return "login";
    }
}

5.编写页面测试

    5.1)先创建jsp页面的路径设置和pom.xml文件增加一个war设置,以便可以用工具直接创建jsp

设置好后,会出现以下目录,并完善结构:

 

创建jsp:

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2018/12/26
  Time: 22:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登陆</title>
</head>
<body>
<form method="post" action="${pageContext.request.contextPath}/user/dologin.html">
    用户名:<input type="text" name="userName">
    密码:<input type="password" name="password">
    <input type="submit" value="登陆">
</form>
</body>
</html>

index.jsp

<%--
  Created by IntelliJ IDEA.
  User: Lenovo
  Date: 2018/12/26
  Time: 22:34
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>首页</title>
</head>
<body>
登陆成功,欢迎您:${session_user.userName}
</body>
</html>

6. 测试

6.1)spring boot项目用idea内置的tomcat服务器部署,启动需要按下面的方式启动才能调整出页面:

启动成功后需要手动在浏览器输入网址:http://localhost:8081/  需要注意端口号,如果被占用了,需要更改配置文件。

登陆成功后跳转到首页:

6.2)如果启动如下 SsmApplication.java 类

登陆首页:http://localhost:8081/ 显示的情况如下:


7. 补充

       关于maven项目的jar包去重,这里先给一个方法,因为后面会操作重复jar包的问题,如果jar包是重复的,右边会出现暗灰色的提示,可以通过以下方式去重:

这个方法需要jar包的groupId 和 artifactId 与右边的一一对应,不能出错。


       好了,今天就到此吧,由于这个是springboot创建的ssm框架单体项目,现在跑通了前端,后端及连接数据库的部分就可以继续操作了。

猜你喜欢

转载自blog.csdn.net/gaofengyan/article/details/85268253
今日推荐