【微服务】132:SpringBoot搭建SSM项目环境
今天是刘小爱自学Java的第132天。
感谢你的观看,谢谢你。
image学习内容安排如下:
-
更强大的配置文件yaml文件的学习,以及启动类的实现原理简单地了解一下。
-
SpringBoot整合SSM框架,搭建项目环境。
其中mybatis有一个插件叫通用mapper,单表查询时使用起来非常方便。
本来我是打算做个简单的说明就好了的,结果越写越多,就独立成一篇文章了,也就是今天的另外一篇。
一、yml配置文件
配置文件除了可以使用properties类型,还可以使用后缀名为:.yml或者.yaml的类型,比如说:application.yml文件。
注意:如果两种配置文件都有,会将配置信息合并,如果有重复属性,以properties为准。
我们编写一个yml文件:
image①yml配置文件
如果属性名变蓝色了表明正常,如果没有变蓝表明有不对的地方。切记:
-
属性名冒号后面有一个空格,不要忘了。
-
如果是集合的话,各个属性前面要用-。
②属性读取类
为了测试,这里是创建了User内部类,同时引入user对象,里面有个属性girls是集合。
配置完成,做个测试:
image注入jdbcProperties,通过debug的方式可以查看jdbcProperties属性是否注入成功。
通过控制台可以看到属性和配置文件中的属性是一一对应的。
以上便是对于yml配置文件的说明,我们再简单地了解下启动类的实现原理。
使用SpringBoot之后,那些繁琐的配置都消失不见了,这是如何做到的呢?
@SpringBootApplication源码:
image①@SpringBootConfiguration
该注解继续看下它的源码就可以发现,它有个注解@Configuration。
也就是说它本质上也是一个配置类,只不过是SpringBoot的配置类,项目中只能有一个。
②@EnableAutoConfiguration
Enable启动的意思,根据语义理解其作用,该注解的意思就是启动自动配置。
SpringBoot内部对大量的库进行了默认配置,如何让这些配置自动生效?
根据引入的依赖自动配置对应的库。
③@ComponentScan
ComponentScan,组件扫描的意思,它就类似于以前学spring开启注解扫描的那个标签。
扫描的包是该类所在包及其子包。因此一般启动类会放在一个比较前的包目录中。
注意:昨天我一开始将启动类专门放入了一个包,而controller类放在了另一个包,结果启动有问题,原因也就是在于此。
二、整合SpringMVC
也就是Controller层相关的整合。
1配置端口和映射路径
image①修改端口
我们都知道Tomcat对应的端口是8080,我们以前一直都是默认使用的该端口。
如果要修改要去Tomcat里面修改,很麻烦,但现在很简单了,在yml文件修改端口为80,在浏览器中直接就可以访问了。
注意:在HTTP协议中,如果不输入端口,浏览器会将其默认设置为80端口。
②修改映射路径
可以通过servlet.path的方式修改映射路径,一般来说我们直接使用默认的映射路径就好了,但也要知道这样可以修改。
如果我们修改了,Controller类中的映射路径就要和配置的保持一致,不然访问不了。
比如上图中配置的是以.do结尾的文件才可以访问,故配置“hello.do”才行。
注意:这和xml配置不一样,映射路径不能自动去掉后缀,必须要保持一致。
2静态资源的访问
以前都是将静态资源放入webapp之中,现在使用SpringBoot没有webapp,该怎么办?
image通过ResourceProperties这个类,我们可以知道静态资源默认存放路径。
创建static包存放即可,此外public也行。
3配置拦截器
无论哪种配置,先要自定义一个拦截器,实现父接口HandlerInterceptor,这在前天的笔记中我们详细学习过,不再赘述。
那在SpringBoot中该如何配置呢?
拦截器不是一个普通属性,而是一个类,所以就要用到java配置方式了,刚好做个回顾:
image①xml配置
以前在springMVC中使用的就是xml配置:通过<mvc:interceptors>标签完成。
②Java配置
使用@Configuration指定Java配置类,实现WebMvcConfigurer接口,重写方法。
通过参数registry调用addInterceptor()方法再调用addPathPatterns()方法。
将英文方法翻译成中文理解:使用注册器添加拦截器,再添加要拦截的映射路径。
三、整合数据持久层
Mapper层,也就是Dao层相关的整合。
1连接池配置
image①引入依赖
spring-boot-starter-jdbc,它会自动携带一个叫“追光者”的连接池,所以我们就不用再配置连接池相关的依赖了。
当然SpringBoot并不知道我们的数据库是什么,所以需要配置mysql的依赖。
②配置数据库信息
数据库四大金刚的配置,不用多说。
2事务处理
这个就比以前方便多了,继续比较:
image①xml配置
以前是使用xml配置事务,一共三大步骤:配置平台对应的事务管理器,配置事务通知,aop的配置。总而言之,很是复杂。
②注解配置
现在使用SpringBoot的话,直接在需要开启事务的方法上使用@Transactional即可。
其中和事务相关的属性,比如是否只读,超时时间……等,都可以在注解中设置。
3整合mybatis
image①xml配置
开启驼峰匹配和起别名,这两个功能是干嘛的呢?我们做一个回顾:
驼峰匹配是为了将数据库中表的别名和Java类中的属性名一一对应起来。
起别名也就是可以将类名变成全限定名,所以需要全限定名时只写类名就够了。
②yaml配置文件
camel骆驼的意思;aliases别名的意思。
记住这两个单词,再根据开发工具的提示可以快速找到对应属性。
以上就算是完成了使用SpringBoot对SSM框架的集成,比以前配置确实简单了很多。
最后
关于通用mapper,因为其使用起来非常的方便,所以我专门写了一篇说明。
在今天的另一篇文章中有详细说明。
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。