- 依赖
- 控制反转(IOC)
- ApplicationContext.xml
- bean的加载和调用
- 加载
- 调用
- 有参构造的加载
- 1.通过下标匹配参数
- 2.通过参数类型匹配参数(不建议使用)
- 3.通过参数名匹配参数
- Spring配置
- alias
- bean
- bean的scope
- import
Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架 依赖
spring web mvc的依赖
org.springframework spring-webmvc 5.3.18
spring jdbc的依赖
控制反转(IOC)org.springframework spring-jdbc 5.3.18
在使用dao层操作数据库时,不直接new出dao层的对象来处理数据,而是加一层service层,service层放置一个接口用于动态注入dao层的对象,来使用户完成不同的dao层操作,这就又程序主动创造对象变为了被动接收对象,主动权从程序员的手中,变到了用户的手中。
==举个通俗的例子,==原本老师想抽查哪个组的作业,就得去让组长收作业,这样不仅浪费了老师做别的事(重要的事)的时间,而且一旦有了新的小组,还得老师去选新的组长,并且指导他收其他人的作业。而有了IOC的思想之后,老师安排一个班长,只要和班长交接完成,那么想要哪一组的作业告诉班长就行了,班长负责告诉相应的组长,这样不仅在收作业上节约了老师的时间,以后来了新的小组,也只需要班长交涉,不需要占用老师的时间了。
在Spring中的体现为,把对象放入容器,用的时候去取,不关心容器如何处理对象,如何实例化对象。
ApplicationContext.xmlbean的加载和调用 加载
在ApplicationContext.xml里配置bean
通过对象的无参构造加载!有参构造的创建方法在下面。
调用这是固定的格式:
//获取Spring的上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
取bean的方法:
类型 变量名 = (类型) 上下文对象.getBean(“bean的id”);
通过上下文对象的getBean()方法获取一个Object对象,再强转成它原来的类型,举个例子:
Hello hello = (Hello) context.getBean("hello");
有参构造的加载
实体类构造器从无参变为有参
public User(String name) {
this.name = name;
}
1.通过下标匹配参数
将有参构造的第index个参数,注入value的值
2.通过参数类型匹配参数(不建议使用)
类型需要写全路径
3.通过参数名匹配参数
这是最好理解的方式,把value处的参数传入到参数列表中name的位置
Spring配置 alias
别名,name是一个bean的id,alias是那个bean的新id。
bean
唯一标识符就类似于变量名,全限定名就是包名+类名,别名可以有多个。
bean的scope
默认是 singleton 单例,创建的都是同一个对象。
prototype 每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()。
request 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于web的Spring WebApplicationContext环境。
importsession 同一个HTTP Session共享一个Bean,不同Session使用不同的Bean。该作用域仅适用于web的Spring WebApplicationContext环境。
一般用于团队开发使用,将多个配置文件导入、合并为一个。
这样 ApplicationContext1.xml 和 ApplicationContext1.xml 里面所有的bean就会被合并到调用他们的xml文件里了。
如果内容相同就会合并。



