【备注:【第二集】会添加以下内容】
1、Tomcat端口号、ContextPath配置
2、页面跳转
3、连接数据库、返回json数据
4、使用外部Tomcat、打包部署项目(包含war、jar两种方式)
【第一集文章链接】:https://blog.csdn.net/qq_17839177/article/details/100541722
【第一集】项目启动结果如下图:
下面继续添加Web项目所需要的功能点……
一、Tomcat端口号、ContextPath配置
tomcat默认端口8080,我们需要修改端口号为:8081,配置ContextPath路径
打开src/main/resources中的application.properties配置文件:
配置如下内容:
#Tomcat端口号
server.port=8081
server.servlet.context-path=/admin/project
保存后运行项目,浏览器输入:http://localhost:8081/admin/project 结果如下:
运行成功;
二、页面跳转
Web项目需要跳转jsp、那么需要配置跳转规则如下:
1>打开src/main/resources中的application.properties配置文件:
如下内容:
#页面跳转配置
spring.mvc.view.prefix=/WEB-INF
spring.mvc.view.suffix=.jsp
2>打开pom.xml配置文件:
如下内容:
<dependencies>
<!-- tomcat/jsp begin -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- jsp修改后不需要再重启服务器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
<!-- tomcat/jsp end -->
</dependencies>
备注:在<dependencies>标签中追加内容
3>打开com.ws.controller中的BasicDataController控制器新增jsp跳转代码:
如下内容:
@RequestMapping("/index")
public String index(HttpServletRequest request,HttpServletResponse response) {
return "/project/system/index";
}
我们页面要跳转的位置是:project ----> system ----> index.jsp,我们在application.properties文件中配置的 spring.mvc.view.prefix=/WEB-INF,那么连起来的位置就是:WEB-INF下的project ----> system ----> index.jsp这个路径,但是SpringBoot页面存放位置都会加一层webapp文件夹,类似于以前的web文件夹。
4>在src/main下依次创建webapp,WEB-INF,project,system文件夹;具体结构如下图:
文件夹project中的basicdata,system两个文件夹可以根据自己的业务来命名。
保存后运行项目,浏览器输入:http://localhost:8081/admin/project/index 结果如下:
运行成功,修改jsp内容后不需要重启服务也可以即使看到效果;
三、连接数据库、返回json数据
Web项目需要连接数据库、我以Mysql为例配置如下:
1>打开pom.xml配置文件:
如下内容:
<dependencies>
<!-- jdbc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
备注:在<dependencies>标签中追加内容
2>打开src/main/resources中的application.properties配置文件:
如下内容:
#用于连接mysql数据库
#useSSL=false用于消除远程连接数据库时的警告
spring.datasource.url=jdbc:mysql://localhost:3306/springbootws?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3>在业务包com.ws下创建业务包,BasicDataController控制器中添加方法,结构如下图:
说明:com.ws 下可以创建service、dao层分别代表服务层、数据操作层,imp层可以根据自己业务创建。
BasicDataController控制器中添加方法如下:
//注入BasicDataService服务接口
@Autowired
private BasicDataService basicdataservice;
//调用数据库方法
@SuppressWarnings("rawtypes")
@RequestMapping("/getuserlists")
public @ResponseBody Map<String,Object> getuserlists(HttpServletRequest request,HttpServletResponse response) {
Map<String,Object> map = new HashMap<String,Object>();
List list = basicdataservice.getUserLists();
System.out.println("list:" + list);
map.put("list",list);
return map;
}
备注:BasicDataService、BasicDataServiceImpl、BasicDataDao这三层的代码就不贴了、大家根据自己业务写
BasicDataDaoImpl 数据操作层代码如下:
内容如下:
@Autowired
private JdbcTemplate jdbctemplate;
@SuppressWarnings("rawtypes")
public List getUserLists() {
String sql = " select * from user_info order by sys_user_id ";
return jdbctemplate.queryForList(sql);
}
保存后运行项目,浏览器输入:http://localhost:8081/admin/project/getuserlists 结果如下:
运行成功;
四、使用外部Tomcat、打包部署项目
4.1 使用外部Tomcat打war包、类似于以前的springmvc用法
Web项目开发结束需要部署到tomcat中、配置如下:
1>打开pom.xml配置文件:
如下内容:
<groupId>com.ws</groupId>
<artifactId>SpringBootWs</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringBootWs</name>
<description>Demo project for Spring Boot</description>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- 【注意:打包出来的名字是自定义的】 -->
<finalName>ws</finalName>
</build>
修改完pom.xml文件后需要刷新一下项目、不然problems中还是会报错、操作如下:
项目右键---->Maven---->Update Project
点击OK……此时项目已经没有错误……
2> 创建web程序启动类SpringBootStartApplication【类似于web.xml】
不创建该类也可以打包,但把打包后的war放入外部tomcat中启动后浏览器访问不到该项目
作用:因为在外部容器tomcat中部署的话,就不能依赖于SpringBootWsApplication的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,在SpringBootWsApplication类的同级添加一个SpringBootStartApplication类,其结构、代码如下:
内容如下:
package com.ws;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(SpringBootWsApplication.class);
}
}
3> 编辑打包项目,如下图:
项目右键---->Run As---->Maven Clean
出现 BUILD SUCCESS 就时清理成功了……
项目右键---->Run As---->Maven Install
出现 BUILD SUCCESS 就时打包成功了……
target文件夹中会出现一系列打包后的文件,其中ws.war就时我们在pom.xml中配置的包名;
还有一个小警告继续处理;
解决办法:项目右键---->properties---->选择Maven 如下图
重新操作
项目右键---->Run As---->Maven Clean
项目右键---->Run As---->Maven Install
即可;
部署外部Tomcat 如下图:
我使用的是apache-tomcat-8.5.43,启动外部Tomcat 如下图:
运行成功,浏览器地址输入:
http://localhost:8080/ws/index
http://localhost:8080/ws/getuserlists
内容分别如下:
4.2 使用内置的Tomcat打jar包、不需要外部Tomcat启动项目
1>打开pom.xml配置文件:
如下内容:
<groupId>com.ws</groupId>
<artifactId>SpringBootWs</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringBootWs</name>
<description>Demo project for Spring Boot</description>
<packaging>jar</packaging>
<build>
<resources>
<!--引入配置文件-->
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
</resource>
<!--引入静态文件-->
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
</plugins>
<!-- 【注意:打包出来的名字是自定义的】 -->
<finalName>ws</finalName>
</build>
修改完pom.xml文件后需要刷新一下项目、不然problems中还是会报错、操作如下:
项目右键---->Maven---->Update Project项目
2> 打开src/main/resources中的application.properties配置文件:
如图注释掉这2项配置、打包后启动项目时这两项即使不注释也是失效的;
3> 编辑打包项目,打war时有图例可以参考;
项目右键---->Run As---->Maven Clean
项目右键---->Run As---->Maven Install
即可;
4> 执行jar包命令、启动项目:
我是存放在E盘某文件夹中的、这个地址可以自己设置;
执行jar文件命令如下:
在cmd命令窗口下执行运行jar包的命令:
java -jar E:\SpringBootWs_jar\ws.jar
这个语句可以启动项目,但是日志会打在控制台上,我们要收集日志,修改一下,在后面加上指定日志文件
优化后的命令如下:
java -jar E:\SpringBootWs_jar\ws.jar > E:/SpringBootWs_jar/SpringBootWs.log &
执行命令后、会生成一个日志文件、如下图:
打开该日志文件、有启动信息如下:
启动成功,浏览器地址输入:
http://localhost:8080/getuserlists
到此,SpringBoot项目就运行成功了!
【备注:【第三集】会添加以下内容】
1、安全框架shiro
【第三集文章链接】:https://blog.csdn.net/qq_17839177/article/details/100707216