12-25 Spring框架控制反转(IOC),依赖注入(DI)

<!--  加载XML文件 -->

ApplicationContext application = new ClassPathXmlApplicationContext("applicationContext.xml");

Object o=application.getBean();//传入XML中的ID或@Component注解的值


<!-- 控制反转(IOC) -->

<!-- 最普通的bean类型 -->

<!-- scope(是否单例)=(默认singleton单例)  prototype多例(getBean才创建)   -->

<!-- lazy-init延迟加载默认(default不开启) -->
<bean id="dog" class="entity.Dog" scope="singleton" lazy-init="default"></bean>


<!-- 调用自己的方法创建对象 -->
<bean id="dog2" factory-method="getInstance" class="factory.DogFactory"></bean>


<!-- 利用反射给创建的对象初始化属性,严格遵循属性的index顺序 -->

<bean id="dog4" class="entity.Dog">
<constructor-arg name="name" index="0" value="小白"></constructor-arg>
<constructor-arg name="age" index="1" value="4"></constructor-arg>
</bean>


<!-- 依赖注入(DI) -->

<!-- 激活XML已经注册的Bean -->

<context:annotation-config></context:annotation-config> 

<!-- 开启spring的注解扫描 -->

<context:component-scan base-package="*"></context:component-scan>

@Component  通用,默认名字是类名驼峰写法
控制层@Controller
业务层@Service
dao层@Repository
注入属性
@resource(name="*")
========================
@Qualifier("*")
@Autowired
--------------这两个注解相当于上面这一个
--------------@Autowired单独写的话从容器当中找对应类型的对象进行注入


<!-- p命名空间 -->
<bean id="dog11" class="entity.Dog" p:name="小白"/>


<!-- 自动装配 -->
<bean id="dogDaoImpl" class="dao.impl.DogDaoImpl"></bean>
<bean id="dog9" class="service.DogService" autowire="byType"></bean>


<!-- Spring3出来的一个表达式 #{} -->

<bean id="dog4" class="entity.Dog">
<constructor-arg name="name" index="0" value="小四四"></constructor-arg>
<constructor-arg name="age" index="1" value="4"></constructor-arg>
</bean>

 <bean id="dog10" class="entity.Dog" p:name="#{dog4.name}"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值