spring三种注入:
1 构造器注入
2 setter注入
3 使用注解方式注入
////构造器注入
0 需要准备的包
asm.jar
cglib.jar
1 类构造器中配置要注入的对象
//基本参数
private A a;
private List<Integer> list;
//构造器注入
public TestA(A a,List<Integer> list)
{
this.a = a;
this.list = list;
}
2 配置文件中配置
<bean id="a" class="com.spring.domain.A"></bean>
<bean id="testA" class="com.spring.test.TestA">
<constructor-arg index="0" type="com.spring.domain.A" ref="a" />
<constructor-arg index="1">
<list>
<value>1</value>
<value>2</value>
</list>
</constructor-arg>
</bean>
////setter注入
1 类中配置要注入的对象
//基本参数
private A a;
private List<Integer> list;
private String str;
//set/get方法
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
public List<Integer> getList() {
return list;
}
public void setList(List<Integer> list) {
this.list = list;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
2 配置文件中配置
<bean id="testB" class="com.spring.test.TestB">
<property name="a" ref="a"></property>
<property name="list">
<list>
<value>1</value>
<value>2</value>
</list>
</property>
<property name="str" value="str"></property>
</bean>
////使用注解方式注入
a 注解配置
<!-- 开启注解功能 -->
<context:annotation-config></context:annotation-config>
<!-- 设置注解扫描包,该设置自动开启注解功能 -->
<context:component-scan base-package="com.spring.*"></context:component-scan>
b 注册类B
package com.spring.domain;
import org.springframework.stereotype.Component;
@Component
public class B {
public String toString()
{
return "com.spring.domain.B";
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
c 注解注入bean B
@Autowird:默认按类型装配
@Autowired
private B b;
@Resource:默认按名称装配,当找不到与名称相匹配的bean时,才会按类型装配
如果@Resource的name属性没有指定,即默认以属性名称作为bean名称寻找依赖的对象
@Resource
private B b;
d 注册测试类TestC
<bean id="testC" class="com.spring.test.TestC"></bean>
e 获取测试类,测试类B是否注入成功
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
TestC test = (TestC)ctx.getBean("testC");
System.out.println(test.b.toString());
总结:
1 类的注册
//可以在spring的配置文件中配置如下:
<bean id="testC" class="com.spring.test.TestC"></bean>
//也可以通过注解的方式注册,如下:
@Component
public class B
2 类的注入可以在spring的配置文件中配置如下:
//构造器注入
<bean id="testA" class="com.spring.test.TestA">
<constructor-arg index="0" type="com.spring.domain.A" ref="a" />
</bean>
//属性注入
<bean id="testB" class="com.spring.test.TestB">
<property name="a" ref="a"></property>
</bean>
//注解注入
@Resource
private B b;
分享到:
相关推荐
spring2.5.6相关依赖jar包,包含完整的依赖包
该txt文件中是spring2.5.6完整版开发依赖包的直接下载地址,迅雷中直接新建下载任务复制该地址就可快速下载。该依赖包中包含了所有Spring开发中用到的jar文件以及spring框架源码,和相关开发文档,api,示例等,欢迎...
spring2.5.6官方jar包 spring2.5.6官方jar包 spring2.5.6官方jar包 spring2.5.6官方jar包 spring2.5.6官方jar包 spring2.5.6官方jar包 spring2.5.6官方jar包
spring2.5.6.zip包括spring2.5.6所有jar包为
spring2.5.6jar包sprinspring2.5.6jar包g2.5.6jar包spring2.5.6jar包
一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar、spring-webmvc.jar、commons-logging.jar、cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar...
spring2.5.6开发必备的jar文件,希望能帮到你。
spring2.5.6注解以及xml两个简单ioc入门示例项目,导入项目可运行。 同时带有spring-framework-2.5.6-with-docs.zip包
spring 2.5.6 官方包 spring-framework-2.5.6.SEC02.zip spring-framework-2.5.6.SEC02.zip spring-framework-2.5.6.SEC02.zip
spring2.5.6 aop简单示例,导入可运行,包括必须jar包
Spring2.5.6 帮助文档 API
spring2.5.6完整源代码及api
spring2.5.6 jar包+源码
spring 2.5.6源码 把其中的文档部分给删了,其他都是发布版本
包含 Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2 整合的包。
这些是spring 2.5.6的modules的jar包
spring2.5.6+struts2.1.6+hibernate3.3.2+mysql驱动包 所需jar集合
Spring2.5.6学习笔记-最新Spring2.5.6学习笔记-最新Spring2.5.6学习笔记-Spring2.5.6学习笔记-最新Spring2.5.6学习笔记-最新Spring2.5.6学习笔记-最新最新