springboot 搭建(一)基础搭建

之前写过一篇关于springboot的搭建,由于是初学,写的不是很好,最近重新学习springboot,这里记录一下比较全的搭建,并集成其他功能

1.环境  STS(其他开发工具大同小异)  , maven 3.6 、  jdk1.8  ,springboot版本 2.1.2

2.创建简单的maven项目,在pom文件中引入以下依赖


    
        UTF-8
        1.8
        1.8
    
    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.2.RELEASE
    
    
        
	    
	        org.springframework.boot
	        spring-boot-starter-web
	        
	        
	        	
	        		org.springframework.boot
	        		spring-boot-starter-logging
	        	
	        
	    
        
        
            org.springframework.boot
            spring-boot-starter-log4j2
        

最主要的就是父依赖,和一个 web 支持的依赖,就可以完成最简单的项目,写一个方法测试一下

springboot 搭建(一)基础搭建_第1张图片

目录结构如上图,App这个类要在其他类的上级或同级目录,原因在于@SpringBootApplication这个标签默认扫描规则,

springboot 搭建(一)基础搭建_第2张图片

springboot 搭建(一)基础搭建_第3张图片

启动main方法,浏览器输入 localhost:8080/hello

springboot 搭建(一)基础搭建_第4张图片

最基本的项目搭建完成,集成其他功能

3.热部署

eclipse中只需要加入一个依赖即可

 
        
            org.springframework.boot
            spring-boot-devtools
        

这时不需要重启项目,保存后即可直接访问,实现热部署

4.集成mybatis

引入mybatis依赖和数据库连接池依赖

 
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.2.0
        
        
        
            mysql
            mysql-connector-java
        

5.逆向工程生成实体,mapper接口和mapper的xml文件,首先在mysql数据库中新建一张表

写一个逆向工程的配置文件




    
    
    
        
            
            
            
        
        
        
        
        
            
        
        
        
            
            
        
        
        
            
        
        
        
            
        
        
        

在pom文件中引入插件


			
				org.mybatis.generator
				mybatis-generator-maven-plugin
				1.3.2
				
					true
					true
				
			

用 命令执行即可  mvn mybatis-generator:generate

右键项目 ---->  Run as ---> Maven Build...  --->

springboot 搭建(一)基础搭建_第5张图片

即可生成实体,xml和dao接口前提你项目集成好maven

springboot 搭建(一)基础搭建_第6张图片

这三个文件是逆向工程生成的,

配置application.properties

# MYSQL 配置
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/sb?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=1234
# sql文件的xml路径
mybatis.mapperLocations=classpath:mapper/*.xml
# 服务端口
server.port=8080

 

写一个简单的测试,向数据库中插入一条数据

springboot 搭建(一)基础搭建_第7张图片

 

springboot 搭建(一)基础搭建_第8张图片

App需要添加一个注解,表明扫描dao层的位置

springboot 搭建(一)基础搭建_第9张图片

启动项目,访问 localhost:8080/test/insert/username/小明/password/123456

 

springboot 搭建(一)基础搭建_第10张图片

页面返回成功,数据库插入信息成功

 

6.springboot的单元测试,查询刚刚插入的数据,pom文件引入测试依赖

 
        
            org.springframework.boot
            spring-boot-starter-test
        

写一个测试方法,关键是这些注解

springboot 搭建(一)基础搭建_第11张图片

可以看出打印了结果,说明单元测试已经正确配置

springboot 搭建(一)基础搭建_第12张图片

7.springboot集成事务

在需要加入事务的类上加一个注解 @Transactional

springboot 搭建(一)基础搭建_第13张图片

8.全局异常捕获类,在类上加注解@ControllerAdvice,方法上加@ExceptionHandler,值为运行时异常,运行时出现异常则将被这个类捕获

springboot 搭建(一)基础搭建_第14张图片

9. 资源不存在时的异常不能被全局异常捕获,则需要配置一个错误页面,用到的lambda表达式

springboot 搭建(一)基础搭建_第15张图片

在写一个404.do的处理类

springboot 搭建(一)基础搭建_第16张图片

当输入一个不存在的路径时,就会被这个类处理

springboot 搭建(一)基础搭建_第17张图片

10.访问静态资源,在resources目录下新建一个文件夹,叫stati或者public,向里面放入一张jpg图片,然后浏览器

访问 localhost:8080/XXX.jpg,就能看到这个图片

springboot 搭建(一)基础搭建_第18张图片

 

11.支持jsp页面的集成

11.1  pom导入对jsp支持的依赖


        
            javax.servlet
            jstl
        
        
            org.apache.tomcat.embed
            tomcat-embed-jasper
        

11.2 application.properties文件加入视图解析器相关配置

#jsp页面前缀和后缀
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

11.3,由于这里是springboot项目,没有WEB-INF等相关目录,自己手动创建,红线内都是手动创建的,也可以在pom文件中指定war,会出现相应的目录结构,如果缺少目录还需要手动创建

springboot 搭建(一)基础搭建_第19张图片

最后写一个测试方法

springboot 搭建(一)基础搭建_第20张图片springboot 搭建(一)基础搭建_第21张图片

访问后得到相关页面

springboot 搭建(一)基础搭建_第22张图片

12.集成 thymeleaf 模板引擎

12.1首先将pom文件中的对jsp支持的依赖注释掉,加入对thymeleaf 支持的依赖


        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        

 

12.2 配置文件中增加一条配置 spring.thymeleaf.cache=false,关闭缓存

# 关闭模板缓存
spring.thymeleaf.cache=false

12.3,resources目录下创建一个 templates文件夹,将html文件放进去,写一个测试方法

springboot 搭建(一)基础搭建_第23张图片

浏览器访问

springboot 搭建(一)基础搭建_第24张图片

thymeleaf 模板引擎也集成好了,至于获取复杂对象则需要了解相关知识,这里不做演示

 

13  集成swagger,加入依赖


        
            io.springfox
            springfox-swagger2
            2.7.0
         
        
            io.springfox
            springfox-swagger-ui
            2.7.0
        

  13.1  写一个配置类

springboot 搭建(一)基础搭建_第25张图片

13.2:写一个对应的,controller,

springboot 搭建(一)基础搭建_第26张图片

 

启动项目,浏览器输入 localhost:8080/swagger-ui.html

springboot 搭建(一)基础搭建_第27张图片

可以看到对应的方法,直接测试,输入参数,得到结果,swagger集成成功

 

14.日志集成 ,默认导入了lockback,pom文件不需要再导入其他依赖

配置文件加上日志级别

logging.level.root=INFO  :日志级别设置为info
logging.level.com.enjoy.controller=DEBUG:com.enjoy.controller这个包下的级别设置为debug
logging.file =F:/log/enjoy.log    日志输出到F:/log/enjoy.log 路径下

测试,在需要加日志的类上加入   private final Logger log = LoggerFactory.getLogger(UserController.class);引入的包是  org.slf4j.Logger,则调用  log.info("xxx");就会打印对应的日志

上面配置的默认的lookback日志,还有一种日志log4j2,需要排除lockback,在引入log4j2才能生效

springboot 搭建(一)基础搭建_第28张图片

,其他不用变,日志直接使用,同上面用法一样

15.AOP的日志应用,写一个切面类,设置参数,方法执行前后调用该类的方法,无需每个方法都做重复工作,简化开发

 
        
            org.springframework.boot
            spring-boot-starter-aop
        

 

springboot 搭建(一)基础搭建_第29张图片

 

执行相关方法,会打印出相应的日志

16 打包部署

    16.1,打jar包,pom文件中需要添加几个插件


			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.8
					1.8
				
			
		    
			
				org.springframework.boot
				spring-boot-maven-plugin
			
			
			
				org.apache.maven.plugins
				maven-surefire-plugin
				
					true
				
			

配置好以后,可以用eclipse的maven打包  右键项目——>Run As——>Maven clean先清理一下,再安装Run As——>maven install,提示成功以后,在项目的target目录下找到该项目的jar包文件,在这里打开命令窗口,输入 java -jar xxx.jar,即可启动项目

springboot 搭建(一)基础搭建_第30张图片

也可以用maven命令,在命令窗口手动打包,打包要在pom文件同级目录下打开命令窗口,mvn clean package命令打包,在target目录下能找到这个jar包,按上面步骤启动即可

 

打war包,需要在打jar包的基础上做两处修改

16.1:修改pom文件 将jar  改成war,更新一下

16.2:在App.class中修改主方法

public class App extends SpringBootServletInitializer{

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(App.class);
    }

需要继承SpringBootServletInitializer这个方法,重写configure方法,修改完按照上面的命令打包,就会打成war包

部署到tomcat9 中,将war包方在webapp下,启动,浏览器输入localhost:8080/项目名/路径,就可以访问了,如果不想输入项目名直接访问,需要将war包改成ROOT.war,放到webapp中,启动后直接访问就可以

 

 

 

你可能感兴趣的:(springboot)