【微服务】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配置:通过标签完成。

②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,因为其使用起来非常的方便,所以我专门写了一篇说明。

在今天的另一篇文章中有详细说明。

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

你可能感兴趣的:(【微服务】132:SpringBoot搭建SSM项目环境)