Young87

当前位置:首页 >个人收藏

java set方法注入_从头认识Spring-2.4 基于java的标准注解装配-@Inject(2)-通过set方法或者其他方法注入...

这一章节我们来讨论一下基于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

上一篇: 给大家分享一个基于HTML/CSS/JS酷炫的登陆注册表单

下一篇: 基于区块链的供应链金融系统解决方案—我的程序员学院课程

精华推荐