Spring框架学*?IOC

发布于:2021-10-16 03:59:06

标题:Spring框架学*?IOC
学*内容:

1、Spring框架基本概述以及IOC基本概述
2、IOC底层原理
3、基于XML方式的bean管理
4、基于注解的bean管理
5、IOC内容的补充



内容详情:

1、Spring框架基本概述以及IOC基本概述
Spring框架基本概述



1、Spring是轻量级的开源的JavaEE框架’
2、Spring:可以解决企业应用开发的复杂性。
3、Spring有两个核心部分:IOC和 Aop
(1)IOC:控制反转,把创建对象过程交给Spring进行管理
(2) Aop:面向切面,不修改源代码进行功能增强。
4、Spring特点
(1)方便解耦,简化开发
(2)Aop编程支持;
(3)方便程序测试
(4)方便和其他框架进行整合
(5)方便进行事务操作
(6)降低API开发难度;



什么是IOC



控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理



使用IOC目的:



为了耦合度降低




2、IOC底层原理
xml解析、工厂模式、反射

IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
Spring提供IOC容器实现两种方式:(两个接口),



BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用,加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用,加载配置文件时候就会把在配置文件对象进行创建



3、基于XML方式的bean管理


3.1.创建对象



在spring配置文件中,使用bean标签,标签里面添加对应属性
*id属性:唯一标识;
*class属性:类全路径〔包类路径)
创建对象时候,默认是执行无参数构造方法完成对象创建





3.2.属性注入之set注入,以及set注入?p名称空间注入


set注入








p名称空间注入



首先在上面写下
xmlns:p=“http://www.springframework.org/schema/p”
然后通过P:属性注入




xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">





3.3.带参数的构造注入








3.4. 注入空值以及 注入特殊符号









>]]>



3.5. 外部bean的注入











这段代码就在UserService类里面,注入了UserDaolmpl类的一个对象,就可以使用这个对象操作了



3.6.内部bean的注入以及级联赋值






















一对多的关系,比如一个员工属于一个部门,一个部门有很多员工,员工类用部门类的部门名作为属性时,需要获取部门类的对象,并且为其赋值



3.7.给数组、list、map、set集合赋值






hhh




知道
了吗











知道
你会了





3.8. 集合中放的对象的赋值



















3.9.把集合抽取出来供公共使用




aa
le
Wu





4、基于注解的bean管理


4.1.Bean管理中创建对象注解



@Component :普通类
@Service ;service层
@Controller :web层
@Repository ;dao层



规范的话就按照上面的用,其实效果都一样4个注解,都可以随便用,但规范的话就按照上面的标准。


用法:很简单,用在哪个类就放哪个类上面
但要开启注解扫描





4.2.基于注解方式实现属性注入



@Autowired:根据属性类型进行自动装配
@Qualifier:根据属性名*凶⑷
@Resource:可以根据类型注入,可以根据名称注入
@Value:注入普通类型属性



Qualifier要跟Autowired一起使用,Resource不是Spring提供的,是java扩展类提供的。


基于注解很简单,注解写在属性上面,特殊需要的话,注解后面跟个value=。


5、IOC内容的补充



5.1.测试代码的补充
之前都是配置文件的代码,这里补充一个通用的测试类代码


//加Spring配置文件,两种方式对应不同的路径
ClassPathXmlApplicationContext context1 = new ClassPathXmlApplicationContext("bean2.xml");
ApplicationContext context = new FileSystemXmlApplicationContext("C:\ideacode\IOC\src\bean1.xml");
//加载配置的对象
Book book = context.getBean("book", Book.class);
Book book1 = context1.getBean("book", Book.class);

5.2.简要介绍Spring有两种类型 bean


Spring有两种类型 bean:



普通bean:在配置文件中定义bean类型就是返回类型
工厂bean (FactoryBean) :在配置文件定义bean类型可以和返回类型不一样



5.3.bean的作用域



在spring配置文件 bean标签里面有属性(scope)用于设置单实例还是多实例
scope属性值 第一个值默认值singleton,表示是单实例对象
第二个值prototype,表示是多实例对象
singleton和prototype区别
singleton单实例,prototype多实例
设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象 设置 scope值是
prototype时候,不是在加载spring 配置文件时候创建对象,在调用getBean方法时候创建多实例对象s



5.4.bean的生命周期


生命周期



从对象创建到对象销毁的过程



bean生命周期



1.通过构造器创建bean实例(无参数构造)
2.为bean的属性设置值和对其他bean引用(调用set方法)
3.调用bean的初始化的方法(需要进行配置初始化的方法))
4.bean可以使用了(对象获取到了)
5.当容器关闭时候,调用bean的销毁的方法(需要进行配置销毁的方法)



添加后置处理器之后
就有7步了
在第三步的前后添加了把bean实例传递bean后置处理器的方法


5.5.bean基于xml方式的自动装配
实现自动装配



bean标签属性autowire
配置自动装配autowire属性常用两个值:
byName根据属性名称注入,注入值bean的id值和类属性名称一样
byType根据属性类型注入



5.6.引入外部属性文件





5.6.开启组件扫描的筛选配置


相关推荐

最新更新

猜你喜欢