简述:今天开始创建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>
下面在页面测试的时候是部署到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框架单体项目,现在跑通了前端,后端及连接数据库的部分就可以继续操作了。