spring之对象属性的注入和对象注入

这篇是接上一篇文章的后续。

上篇文章链接spring之创建一个spring简单实例

在spring中,常用属性的注入有三种。

一:通过构造方法来注入

①.首先在User类里面写一个构造方法,注意此构造方法需和你xml声明bean时所用的相同。

public class User {
	private String name;
	public User(String name) {
		this.name = name;
	}
	public void add() {
		System.out.println("add------------");
	}
}

②:然后在xml声明这个bean

 <!-- 4创建一个带有name属性的user对象 -->
 <bean id="user2" class="cn.ioc.User">
<!-- name为属性的名称,value为属性具体的值 -->
       <constructor-arg name="user2" value="小明"></constructor-arg>
 </bean>

③:在测试类写如下代码

 User user2 = (User) context.getBean("user2");
 System.out.println(user2.getName());;
 user2.add();

得到结果为:

可知,name属性已经注入进去。

二:通过set方法来注入

①.首先在User类里面写一个set方法

public void setName(String name) {
		this.name = name;
	}

②:在xml里面声明这个bean

<!-- 使用set方法来注入bean的属性 -->
         <bean id="user3" class="cn.ioc.User">
         <!-- name为属性的名称,value为属性具体的值 -->
         	<property name="name" value="张三"></property>
         </bean>

③:在测试类中写如下代码:

User user3 = (User) context.getBean("user3");
		System.out.println(user3.getName());
		user3.add();

运行结果为:

总结:两种方法都可以对bean的属性进行注入,具体的场景下用具体的注入方式。

三:p命名空间

命名空间注入首先需要在约束中加入

xmlns:p="http://www.springframework.org/schema/p"

然后在xml中即可这样写

<!-- P命名空间注入 p:后面跟的则是这个属性,=号后面是属性的值-->
 <bean id="user4" class="cn.ioc.User" p:name="P命名空间注入"></bean>

在spring中,对象的注入常用的为set注入和注解注入。

set注入对象的方法和上文提到的set注入属性的方法大致相同,不同的点是注入的东西,不同xml中有所不同,下面我列出来。

在set注入属性的时候 name 后面的是value——即对应的值。而在set注入对象的时候name后面是ref——即对应的其他bean的id

eg:将bean对象注入到User里面

<!-- 将bean对象注入到User里面 -->
<bean id="user4" class="cn.ioc.User">
<!-- 在User里面注入bean3对象——相当于将bean3对象当成了User类的一个属性 -->
     <property name="bean3" ref="cn.bean.Bean1"></property>
 </bean>

 

展开阅读全文

没有更多推荐了,返回首页