`

Spring注入类型

阅读更多

第一中属性注入也就是setter注入(为属性提供相应的set和get方法)

package com.lbx.service.impl;

import com.lbx.dao.UserDao;
import com.lbx.po.User;
import com.lbx.service.UserService;

public class UserServiceImpl implements UserService {
	private UserDao userDao;
	private String name;
	private String age;
	
	public String getName() {
		return name;
	}

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

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
	@Override
	public void add(User user) {
		userDao.add(user);
	}
	
	public UserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

}

 

beans.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="userDao" class="com.lbx.dao.impl.UserDaoImpl"></bean>
<!-- <bean id="userDao2" class="com.lbx.dao.impl.UserDaoImpl2"></bean> -->
<bean id="userService" class="com.lbx.service.impl.UserServiceImpl">
	<property name="userDao" ref="userDao"></property> <!--   这是一种Set注入,也就是调用相应的set方法,还有构造方法注入 -->
	<property name="name"><value>libinxuan</value> </property>
	<property name="age"><value>22</value> </property>
	<!--  
		也可以这样写
	<property name="userDao">
		<ref bean="userDao"></ref>
	</property>
	-->
	<!--<constructor-arg>			 这是一种构造方法注入,参数不好处理,可以是参数类型处理和index来处理		
		<ref bean="userDao"></ref>
	</constructor-arg> -->	
	
</bean>

</beans>

 

 

第二种就是构造函数注入(提供相应的构造方法)多个参数可按类型和索引来区分,有时候还得同时用类型和索引来区分

package com.lbx.service.impl;


import com.lbx.dao.UserDao;
import com.lbx.po.User;
import com.lbx.service.UserService;

public class UserServiceImpl implements UserService {
	private UserDao userDao;
	
	public UserServiceImpl(UserDao userDao) {
		super();
		this.userDao = userDao;
	}

	@Override
	public void add(User user) {
		userDao.add(user);
	}
	
	public UserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

}

 

bean.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="userDao" class="com.lbx.dao.impl.UserDaoImpl"></bean>
<!-- <bean id="userDao2" class="com.lbx.dao.impl.UserDaoImpl2"></bean> -->
<bean id="userService" class="com.lbx.service.impl.UserServiceImpl">
	<!--<property name="userDao" ref="userDao"></property>    这是一种Set注入,也就是调用相应的set方法,还有构造方法注入 -->
	<!--  
		也可以这样写
	<property name="userDao">
		<ref bean="userDao"></ref>
	</property>
	-->
	<constructor-arg>			<!-- 这是一种构造方法注入,参数不好处理,可以是参数类型处理和index来处理 -->			
		<ref bean="userDao"></ref>
	</constructor-arg>
	
</bean>

</beans>

 

 

第三种就是接口注入(一般只用属性注入也是就是使用setter注入)

 

 

 

分享到:
评论

相关推荐

    Spring定义bean的三种方式和自动注入

    bean加入spring容器管理的方式,bean加入applicationcontext容器的方式

    Spring注入Date类型的三种方法总结

    主要介绍了Spring注入Date类型的三种方法总结的相关资料,希望通过本文能帮助到大家,让大家掌握这几种方法,需要的朋友可以参考下

    Spring_Spring_教程8_注入_复杂类型的注入

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010003835/article/details/

    Spring如何注入Date类型的变量

    NULL 博文链接:https://kanpiaoxue.iteye.com/blog/2164464

    浅谈spring ioc的注入方式及注入不同的数据类型

    主要介绍了浅谈spring ioc的注入方式及注入不同的数据类型,具有一定借鉴价值,需要的朋友可以参考下

    Wasabi1234#Java-Interview-Tutorial#Spring 注入集合类型1

    1.1 收集方式 1.2 直接装配方式 2.1 收集装配 2.2 直接装配方式

    1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf

    1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。

    spring的详细介绍

    6. 注入的数据类型 7. 创建bean实例的方式 8. Spring中Bean实例的设计 9. 创建Bean实例的时间 10. 自动装配(不建议使用) 11. 依赖检查 12. 定义IoC容器管理的javabean的生命周期回调方法 13. 接口FactoryBean的使用

    spring杂谈 作者zhang KaiTao

    1. spring杂谈[原创] 1.1 Spring事务处理时自我调用的解决方案及一些实现方式的风险 1.2 我对AOP的理解 1.3 Spring开闭原则的表现-BeanPostProcessor的扩展点-1 1.4 我对IoC/DI的理解 ...1.33 Spring 注入集合类型

    Spring攻略PDF版

     1.4 理解不同类型的依赖注入   1.4.1 问题描述   1.4.2 解决方案   1.4.3 实现方法   1.5 使用配置文件配置容器   1.5.1 问题描述   1.5.2 解决方案   1.5.3 实现方法   1.6 小...

    Spring开发指南

    依赖注入的几种实现类型 Type1 接口注入 Type2 设值注入 Type3 构造子注入 几种依赖注入模式的对比总结 Spring Bean封装机制 Bean Wrapper Bean Factory ApplicationContext Web Context Spring 高级...

    Spring - -setter方式 向bean中注入各种类型的值

    NULL 博文链接:https://lixiongqing.iteye.com/blog/2124696

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    通过@Bean 和spring的factoryBean注入的bean. 以及对应@service注解注入的类 通过@Autowired 注入对象的时间是现根据类型在根据beanName获取的案例集合

    Spring攻略中文版PDF

     1.4 理解不同类型的依赖注入   1.4.1 问题描述   1.4.2 解决方案   1.4.3 实现方法   1.5 使用配置文件配置容器   1.5.1 问题描述   1.5.2 解决方案   1.5.3 实现方法   1.6 小...

    SpringDI.rar

    Spring依赖注入(DI)的例子,包括接口注入、构造注入、set注入的简单类型和复杂类型注入的例子。

    spring2.5学习PPT 传智博客

    07_编码剖析Spring依赖注入的原理 08_编码剖析Spring装配基本属性的原理 09_Spring如何装配各种集合类型的属性 10_使用构造器装配属性 11_用@Resource注解完成属性装配 12_编码剖析@Resource注解的实现原理 ...

    Spring的学习笔记

    三、 注入类型(Injecting dependencies) 9 (一) setter注入类型Setter Injection 9 (二) 构造方法Constructor Injection 10 四、 id、name 11 五、 简单属性的注入 11 六、 Bean的作用范围scope 12 七、 集合注入 12...

    Spring面试题含答案.pdf

    19. 有哪些不同类型的 IOC(依赖注入)方式? 20. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入? 21.什么是 Spring beans? 22. 一个 Spring Bean 定义 包含什么? 23. 如何给 Spring 容器提供...

    Spring攻略英文版(附带源码)

     1.4 理解不同类型的依赖注入   1.4.1 问题描述   1.4.2 解决方案   1.4.3 实现方法   1.5 使用配置文件配置容器   1.5.1 问题描述   1.5.2 解决方案   1.5.3 实现方法   1.6 小结   第...

Global site tag (gtag.js) - Google Analytics