前言
上一篇文章我们发表Mybatis框架的学习心得,以及针对一个项目而言说了一些流程。
Spring学习的时候我们需要知道它的两个核心功能Ioc,Aop,本文今日对Ioc做重点解释。
Ioc功能阐述
Ioc,主要是一个容器我们可以把对象的创建过程交给这个容器,让这个容器去帮助我们管理对象。引入一个单词 Bean,翻译过了就是豌豆荚,豌豆荚整个外面的果皮包含着很多颗豌豆,这就类似我们的Ioc包含了很多Bean一样的。
前期准备
有两个思路,一个就是类似于我前面mybatis那样子做前期准备(https://blog.csdn.net/qq_56252808/article/details/125055153?spm=1001.2014.3001.5502)
另一个就是使用逆向工程,自动生成Mapper.xml,以及Mapper.class,以及entity中的实体类。
逆向工程的使用很简单,首先下载相应的工具。(解压后的文件)
在此处我们只需要干这么几件事情,在config.xml文件中指定数据库的连接,以及逆向工程文件的生成路径,以及需要生成哪些表。
好了到了这里,我们就完成前期准备。以上留给后面使用。
Spring Ioc的几种方式,分为注解和配置文件的。
首先配置一个Spring-ioc.xml文件,里面主要是使用<beam>在容器中配置dao层的类,也可以使用包扫描的形式。
此处已经将我们的Bean对象放到了容器中,接下来我只要在测试类中注入测试一下。 (这里又可以分为两步走)一个是Java代码使用 ClassPathXmlApplicationContext 去读取配置文件而后生成一个
ApplicationContext 的对象。然后在使用这个对象去获取相应的bean对象
第二种则是使用注解(ContextConfigruation)读取配置文件
到此处我们就已经说完了Spring ioc容器管理的xml形式。接下来使用AppConfig.class来管理对象
AppConfig.class管理对象
声明一个类为管理类,而且给整个类加上Configguration注解,然后再给里面方法也就是对应返回实例化对象加上Bean注解到此处。
之后我们实例化对象已经放到了Ioc容器中我只需要取出来即可,还是有两种方式,Java手动读取配置类,注解读取配置类。
使用注解读取配置类和注解读取配置文件没有区别。
再使用Java代码时候 读取配置文件使用了ClassPathXmlApplicationContext
读取配置类的时候使用的是AnnotationConfigApplicationContext
到此处已经说完了关于ioc容器管理的核心点,还有一些设值注入,集合注入,构造器之类的后面的文章会对这种知识进行补充说明。
SSM框架整合
整体思路: 先准备好mybatis部分,在准备Spring部分。
准备Mybatis部分前面的前期准备我们已经做完了。可以参考顶上那一段。
接下来准备Spring部分,准备Spring-ioc.xml,SpringMVC.xml
我们准备这两个文件有两个原因 将mybtis的配置文件放入里面,因为以前Mybatis的获取对象是要用SqlSessionFactory,去生成对象,现在我们就要用Spring的ioc去帮助我们管理这个东西生成对象,
这个配置中了,主要是开启了一个全局的SqlSessionFactory,获取dao/mapper本质来讲还是不变的只是我们利用Spring的Ioc这样子我们才能做到自动的,然后下面有两个包扫描,这个是我们的Di注入的方式,将mapper/dao放到service ,Service放到controller中,最早期的是一个bean标签下面写上很多的property太麻烦了所以使用这种包扫描的去偷个懒。
SpringMVC的配置文件主要是配置前端解析器,让我们的路由能够走通
下面是service以及Controller的代码。分别使用@Service,@RestController注解表明是哪一层的代码
稍后我们马上启动这个完整的程序,给大家演示下。
访问地址 及控制层代码
返回的结果 数据库中的数据,这里讲的是怎么整合,所以就没有写一个页面
好了,到了这里补充几点,如果使用Tomcat而且是父子项目均为空项目要自己去部署,
(在module里面加上Spring的 然后指定下web.xml的位置)
然后一定要配置前端控制器以及引入jsp的依赖不然在页面是看不到的。
那么就在讲讲SpringMVC的流程图把,相信我能够讲的很清楚
SpringMVC流程
** 客户端发起请求--->前端控制器(DispatcherSverlet)-->查找有无地址(在HandlerMapping)-->返回一个执行链给前端控制器-->HandlerAdapter(处理器适配器)-->在Handler(Controller)中执行-->返回ModeAndView(模型和数据)-->返回给DispatcherServlet-->视图解析器(ViewResolver)-->交给浏览器渲染了。**
总的来说就是DispatcherServlet负责查找请求 找到了就返回给适配器 然后交给Controller处理
返回数据和视图给DispatcherServlet 然后去显示到页面上。
版权归原作者 富贵呱呱 所有, 如有侵权,请联系我们删除。