首先,我们先了解一下Spring是什么?
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。(以上是百度百科上可以去了解的,就不多做详细解释)
Spring的框架特征除了轻量以外,第二特征就是控制反转,也称之为IOC。
那么IOC又是什么呢?
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
加载的方式又分为两种:
一种是延迟加载 当然 延迟加载肯定是不常用的
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
一种是及时加载
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean配置有三种方法:
1 基于xml配置Bean
2 使用注解定义Bean
3 基于java类提供Bean定义信息
第一次使用的是基于xml配置Bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
<bean id="person1" class="com.zking.pojo.Person"></beans>
产生一个Spring bean,因为我的所有的产生的bean的对象全部都是写在xml配置文件中,那么就意味着,我需要加载这一个配置
文件信息applicationContex.xml ,加载xml配置文件信息,那就意味着解析xml,解析xml就意味着使用demo4j的class属性值的时
候,根据class的值,进行反射 Class.fromName(class),IOC 无非就是使用的demo4j+反射 hibernate(缓存机制) struts2(拦截器-
>解析struts2.xml文件 并且 反射 web.xml 容器)。
Bean注入:
Bean注入的方式有两种,一种是在XML中配置,此时分别有属性注入、构造函数注入和工厂方法注入,另一种则是使用注解的方
式注入 @Autowired,@Resource,@Required。
属性注入即通过setXxx()方法注入Bean的属性值或依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入
是实际应用中最常采用的注入方式。