这一章节我们来讨论一下基于java的标准注解装配标签@Inject是如何通过通过set方法或者其它方法注入?
在使用@Inject标签之前。我们须要在pom文件中面增加以下的代码:
上面是j2ee里面标准的inject标签依赖。javax.inject javax.inject 1
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.配置文件:
測试输出:
jack make blueberryCheeseCake
总结:这一章节主要介绍基于java的标准注解装配标签@Inject是如何通过set方法或者其它方法注入。
文件夹:
我的github: