java set方法注入_从头认识Spring-2.4 基于java的标准注解装配-@Inject(2)-通过set方法或者其他方法注入...
日期: 2021-03-06 分类: 个人收藏 560次阅读
这一章节我们来讨论一下基于java的标准注解装配标签@Inject是怎样通过通过set方法或者其他方法注入?
在使用@Inject标签之前,我们需要在pom文件里面加入下面的代码:
javax.inject
javax.inject
1
上面是j2ee里面标准的inject标签依赖。
1.domain
蛋糕类:(不变)
package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_14;
public class Cake {
private String name = "";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
厨师类:
通过set方法注入
package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_14;
import javax.inject.Inject;
public class Chief {
private Cake cake = null;
public Cake getCake() {
return cake;
}
@Inject
public void setCake(Cake cake) {
this.cake = cake;
}
private String name = "";
public String getName() {
return name;
}
public Cake makeOneCake() {
System.out.println(getName() + " make " + cake.getName());
return cake;
}
public void setName(String name) {
this.name = name;
}
}通过其他方法注入:
package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_14;
import javax.inject.Inject;
public class Chief {
private Cake cake = null;
public Cake getCake() {
return cake;
}
@Inject
public void injectCake(Cake cake) {
this.cake = cake;
}
private String name = "";
public String getName() {
return name;
}
public Cake makeOneCake() {
System.out.println(getName() + " make " + cake.getName());
return cake;
}
public void setName(String name) {
this.name = name;
}
}
这里需要注意的是,虽然我们的cake属性域是赋值为null,但是当spring容器启动时,通过@Inject标签在set方法或者其他方法的地方注入cake对象
2.测试类:
package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_14;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"/com/raylee/my_new_spring/my_new_spring/ch02/topic_1_14/ApplicationContext-test.xml" })
public class ChiefTest {
@Autowired
private ApplicationContext applicationContext;
@Test
public void testChief() {
Chief jack = applicationContext.getBean(Chief.class);
jack.makeOneCake();
}
}
3.配置文件:
外链网址已屏蔽 外链网址已屏蔽
外链网址已屏蔽 外链网址已屏蔽
外链网址已屏蔽 外链网址已屏蔽
外链网址已屏蔽 外链网址已屏蔽
外链网址已屏蔽 外链网址已屏蔽
外链网址已屏蔽 外链网址已屏蔽
外链网址已屏蔽 外链网址已屏蔽
外链网址已屏蔽 外链网址已屏蔽;>
class="com.raylee.my_new_spring.my_new_spring.ch02.topic_1_14.Cake"
p:name="blueberryCheeseCake" scope="prototype" />
class="com.raylee.my_new_spring.my_new_spring.ch02.topic_1_14.Chief"
p:name="jack" />
测试输出:
jack make blueberryCheeseCake
总结:这一章节主要介绍基于java的标准注解装配标签@Inject是怎样通过set方法或者其他方法注入。
我的github:外链网址已屏蔽
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:java set方法注入
精华推荐