Spring IOC基础用法

Spring IOC

 

导入jar包


在maven中声明spring注解所依赖的jar包

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
    </dependencies>

 
 

Bean实例化


1.直接实例化

2.工厂静态方法实例化

<bean id="user4" class="com.jundeng.pojo.StaticFactory" factory-method="getUser"/>

​ 需在配置文件中指定工厂的类名与调用的方法。

3.工厂实例方法实例化

<bean id="dynamicFactory" class="com.jundeng.pojo.DynamicFactory"/>
<bean id="user5" factory-bean="dynamicFactory" factory-method="getUser"/>

​ 先定义工厂,然后指定实列化该对象的工厂的id和方法。

 
 

DI(依赖注入)


1.setter注入

<!--setter注入-->
<bean id="userService1" class="com.jundeng.pojo.UserService">
    <property name="user" ref="user1"/>
</bean>

setter注入的对象必须有无参构造函数

2.constructor注入

<!--constructor注入-->
<bean id="userService2" class="com.jundeng.pojo.UserService">
    <constructor-arg name="user" ref="user2"/>
</bean>

3.对象内容器的注入

<bean id="container" class="com.jundeng.pojo.Container">
    <property name="list">
        <list>
            <value>1</value>
            <value>2</value>
            <value>3</value>
        </list>
    </property>
    <property name="map">
        <map>
            <entry key="1" value="a"></entry>
            <entry key="2" value="b"></entry>
            <entry key="3" value="c"></entry>
        </map>
    </property>
</bean>

 
 

p空间和c空间


p空间即setter注入,c空间即构造器注入, 是对写法上的简化。

<bean id="user1" class="com.jundeng.pojo.User" p:age="99" p:name="kobe" scope="prototype"/>
<bean id="user2" class="com.jundeng.pojo.User" c:age="22" c:name="curry"/>

 
 

分文件配置


可以在主配置文件中引入其它配置文件

当引入文件和当前文件有相同id的元素时,使用的被引入文件的对象

<import resource="ApplicationContext-DB.xml"/>

 
 

API


ApplicationContext 是BeanFactory的子类

其有以下常见实现类

  1. ClassPathXmlApplicationContext: 从类根路径下加载配置文件,只需写文件名即可
  2. FileSystemXmlApplicationContext:通过磁盘路径上加载,配置文件可以在磁盘的任意位置,需要写磁盘绝对路径
  3. AnnotationConfigApplicationContext:使用注解配置容器对象是,需要通过此类创建spring容器

获取Bean可以通过id也可以通过class,通过class获取时要确保容器中只能有一个该类型对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值