Spring学习第二天

3.6 Bean依赖注入

1.因为UserSvice和UserDao都在Spring容器中,而最终程序使用的是UserService

所以可以在Spring容器中将UserDao设置到UserService内部

2.目前UserService实例和UserDao实例都子啊于Spring容器中,

当前的做法是在容器外部获得UserService实例和UserDao实例,然后在在程序中进行中进行结合

3.7 依赖注入

依赖注入(DependencyInjection):它是Spring框架的核心IoC的具体实现

在编写程序时,通过控制反转包对象的创建交给了Spring,但代码中可能出现没有依赖的情况

IoC解耦只是降低了他们的依赖关系,但不会消除

那这种业务层和辞旧层的依赖关系,在使用Spring之后,就让Spring来维护了

简而言之,就是坐等框架把持久成对象传入业务层,而非我们自己来获取

3.8 依赖注入方式

如何将UserDao怎样注入到UserService内部?

1.构造方法

2.set方法

3.9 Bean的依赖注入方式

1)Set方法注入

1.P命名空间注入本质也是Set方法注入,但不起上述的Set方法,注入更加方便,主要体现子啊配置文件,

如下:

首先需要引入P命名空间:xmlns:"http://www.springframework.org/schema/p"

其次需要修改注入方式:

<bean id="userService" class="com.hcx.serviec.impl.UserServiceImpl" p:UserDao-ref:"userDao"/>

2.普通方式注入

先在xml文件中配置如Dao,再再配置好的UserService中导入UserDao

如下:

<bean id="UserDao" factory-bean="factory" factory-method="getUserDao"></bean>

<bean id="UserService" class="com.hcx.service.UserServiceImpl">

<property name="userDo" ref="userDao"><property>

</bean>

2) 有参构造注入

1.首先创建带参构造函数,并创建无参构造

2.而后子啊xml文件中注入构造器

如:

<bean id="UserService" class="com.hcx.service.impl.UserServiceImpl">

<constructor-arg name="UserDao" ref="UserDao">

</constructor-arg>

</baen>

3.8 Bean的依赖注入的数据类型

上面的操作,都是注入引用Bean,出来对象的引用可以注入,普通数据类型,集合等都可以在容器中注入

注入数据类型:

1.普通数据类型

在Bean文件中写入要有的属性和其对应的getter和setter方法,在xml中通过

<bean id="标识名" class="完整包名">

<property name="属性” value=“属性值”/>

</bean>的方法注入

2.引用数据类

3.集合数据类型

包含了:List,Map,properties

3.9引用其他配置文件(分模块开发)

实际开发中,Spring的配置内容非常多,这就导致Spring配置很繁杂且体积很大,所以可以将部分配置拆解到其他配置文件中,而在Spring主配置文件通过import标签进行加载

<import resource="applicationContxt-xxx.xml">

xml文件拆解

3.9.1知识重点:(总结)

Spring的重点配置

<bean>标签

id属性:在容器中Bean实例的唯一标识,不允许重复

class属性:要实例化的Bean的全限定名

Scope属性:Bean的作用范围,常用是singleton(默认)和prototype

<property>标签:属性注入

name属性:属性名称

value属性:注入的普通属性值

ref属性:注入的对象引用

<list>标签

<Map>标签

<properties>标签

<constructor-arg>标签

<import>标签:导入其他Spring的分文件

4. Spring相关API

4.1 AplicationContext的继承体系

AppilicationContext:接口类型,代表应用上下文,可以通过其实例活得Spring容器中的Bean对象

4.2 ApilcatuibContext的实现类

1)ClassPathXmlApplicationContext

它是从类的根路径下加载配置文件(推荐使用)

2)FileSystemXmlApplicationContext

它是重磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置(不太推荐)

3)AnnotationConfigAppcationContext

当使用注解配置容器对象,需要使用之类来创建Spring容器,它来读取注解

4.3 getBean()方法使用

1.获取字符串

 getBean("id")

当同一类型的Bean存在多个使用时可根据id标识区分

2.获取字节码文件

 getBean(class)

当同一类型的Bean只存在一个时使用,不区分id标识

4.4 知识重点(总结)

1.ApplicationContext app=new ClassPathXmlApplication("xml文件");

app.getBean("id");

app.getBean(class);

posted @ 2022-01-10 13:44  筝弈  阅读(36)  评论(0)    收藏  举报
2 3
4