Spring5 之 IOC
Spring 框架概述
- Spring是轻量级的开源的JavaEE框架
- 可以解决企业应用开发的复杂性
- 有两个核心部分:IOC 和 Aop
- IOC:控制反转,把创建对象的过程交给Spring管理
- Aop:面向切面,不修改源码增加功能
- Spring特点:
- 方便解耦,简化开发
- Aop编程支持
- 方便测试
- 方便和其他框架整合
- 方便事务操作
- 降低API开发难度
入门案例

- IDEA 创建 Java 工程,导入基础jar包

- 创建普通类,创建spring配置文件,配置创建的类
public class User {
public void add(){
System.out.println("hello Spring5");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="cn.demo.spring5.domain.User"></bean>
</beans>
- 获取 User 对象

IOC容器
-
控制反转,把对象创建和对象之间的调用过程交给Spring管理,目的是为了降低耦合
-
底层原理:xml 解析、工厂模式、反射
- 工厂模式


- 工厂模式
-
IOC容器实现的两种方式:(两个接口)
- BeanFactory:基本实现方式,不推荐使用。加载配置文件时不会创建配置文件中的类的对象
- ApplicationContext:BeanFactory的子接口,加载配置文件时会创建配置文件中的类的对象。此接口的实现类如下:

-
Bean 管理:Spring创建对象、注入属性
-
实现方式 ①:xml
- 创建对象、set 注入属性
private String name; private Integer age; public void setName(String name) { this.name = name; } public void setAge(Integer age) { this.age = age; } <!--配置创建对象--> <bean id="user" class="cn.demo.spring5.domain.User"> <!--set 注入属性--> <property name="name" value="啊狗"></property> <property name="age" value="20"></property> </bean>- 创建对象、有参构造方法注入属性
public User(String name, Integer age) { this.name = name; this.age = age; } <!-- 有参构造注入属性--> <bean id="user" class="cn.demo.spring5.domain.User"> <constructor-arg name="name" value="曹操"></constructor-arg> <constructor-arg name="age" value="8000"></constructor-arg> </bean>*其他创建对象


-
实现方式 ②:注解,创建对象的注解:@Component、@Service、@Controller、@Repository。
- 导入jar包

- 开启注解扫描


- 创建类,在类上加入注解

- 获取对象

- 细节:设置只扫描某个注解或者不扫描注解


- 注解注入属性:@Autowired(类型注入)、@Qualifier(名称注入)、@Resource、@Value(常见类型注入)
- 完全注解开发:创建类,加注解@Configuration 作为配置类,@ComponentScan 组件扫描,@Import 导入其他配置类,@Bean 将方法返回值作为对象放进IOC容器,@PropertySource 指定properties文件位置。
- 导入jar包
-
-
外部 Bean 注入:一个类在另外一个类中使用,作为属性,设置 set 方法,xml 标签中使用 ref 属性引用。
-
Bean 管理:注入引用数据类型,数组、list 集合、Map、Set



-
工厂Bean(FactoryBean):配置文件中类型和实际返回类型可以不同。创建类实现 FactoryBean 接口,实现接口方法,在 getObject 方法中定义返回类型。
-
Bean作用域:Spring创建对象默认是单例的

- 设置为多例

- singleton 和 prototype 区别

- 设置为多例
-
Bean 生命周期


-
Spring 配置文件引入外部文件(数据库连接参数的 properties 文件)
- properties 文件

- context 命名空间

- 引入外部文件,配置连接池

- properties 文件
作 者:凑数的园丁
出 处:https://www.cnblogs.com/lq-404/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。

浙公网安备 33010602011771号