Spring ioc

ApplicationContext ac = 
new ClassPathXmlApplicationContext(
"applicationContext.xml");
//启动spring容器
/*
* ApplicationContext:接口。
* ClassPathXmlApplicationContext:是
* 实现了AppliationContext接口的类。
* 注意:配置文件的路径和文件名,spring
* 容器在启动时,需要读取配置文件。
*/
让容器创建对象

方式一: 使用无参构造器。(重点)
step1. 为类提供一个无参构造器(缺省构造器)
step2. 在配置文件当中,添加一个bean元素。
step3. 启动spring容器,调用getBean方法来获得对象。

set方法的ioc注入

在配置文件中写

<bean id="c1" class="ioc.C"/>
<bean id="a1" class="ioc.A">
<property name="b" ref="c1"/>
</bean>

在类A中注入 C的set方法


<util:properties id="config" 
location="classpath:config.properties"/>

使用:
1.用test测试

@Test
public void test2(){
System.out.println(ac.getBean("config"));
}

2.使用value注解

@Value("#{config.pagesize}")
private String pageSize;
<util:list id="citiesBean">
<value>北京</value>
<value>岳阳</value>
<value>华容</value>
</util:list>
<util:set id="interestBean">
<value>游泳</value>
<value>做饭</value>
<value>画画</value>
</util:set>
<util:map id="scoreBean">
<entry key="english" value="80"/>
<entry key="math" value="90"/>
</util:map>
<util:properties id="dbBean">
<prop key="username">Sally</prop>
<prop key="password">1234</prop>
</util:properties>

<!-- 引用的方式注入集合类型的值 -->
<bean id="eb2" class="value.ExampleBean">
<property name="cities" 
ref="citiesBean"/>
<property name="interest" 
ref="interestBean"/>
<property name="score" 
ref="scoreBean"/>
<property name="db" 
ref="dbBean"/>
</bean>

使用注解来住入
容器启动之后,如果发现配置文件有component-scan元素, 则容器会扫描相应的包及其子包下面的所有的类,如果这些 类前面有一些特殊的注解(比如@Component),则容器会将 这些类纳入容器进行管理(相当于以前配置文件当中有相应的 bean元素)。

注:bean的默认id是首字母小写之后的类名。
@Component 通用
@Service 业务层
@Repository 持久层
@Controller 控制层
(3)生命周期相关的两个注解:
@PostConstruct 初始化
@PreDestroy 销毁
(4)用于延迟加载的注解:
@Lazy(true) true表示延迟加载。
(5)用于指定作用域的注解:
@Scope(“prototype”)。

依赖注入相关的注解
@Autowired 和 @Qualifier
a. 支持set方式的注入和构造器方式的注入。
b. set方式注入:
将@Autowired和@Qualifer加到set方法前面, 也可以加到属性前面。其中,@Qualifer用于指定 要注入的bean的id。
注:如果不指定id,则使用byType的方式来注入。

@Resource
a. 只支持set方式的注入。
b. 可以将该注解加到set方法前面,或者也可以加到 属性前。使用name属性来指定要注入的bean的id。

@value注解即可以用在属性前,也可以用在 set方法前。另外,也可以使用该注解注入基本类 型的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值