一.设值注入
1.建立InjectionDaoImpl和InjectionServiceImpl两个类分别为InjectionDao和InjectionService两个接口的实现类,且InjectionDAO为InjectionServiceImpl的一个属性
public class InjectionServiceImpl implements InjectionService{ private InjectionDAO injectionDAO; //设置注入 public void setInjectionDAO(InjectionDAO injectionDAO) { this.injectionDAO = injectionDAO; } @Override public void save(String arg) { System.out.println("Service 接受参数:" + arg); arg = arg + ":" + this.hashCode(); injectionDAO.save(arg); } }
2.spring-injection.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" > <bean id="injectionService" class="main.com.pt.ioc.injection.service.InjectionServiceImpl"> <property name="injectionDAO" ref="injectionDAO"></property> </bean> <bean id="injectionDAO" class="main.com.pt.ioc.injection.dao.InjectionDaoImpl"></bean> </beans>
二.构造注入
1.同上定义一个仿数据库操作有四个类
public class InjectionServiceImpl implements InjectionService{ private InjectionDAO injectionDAO; //构造注入 public InjectionServiceImpl(InjectionDAO injectionDAO){ this.injectionDAO = injectionDAO; } @Override public void save(String arg) { System.out.println("Service 接受参数:" + arg); arg = arg + ":" + this.hashCode(); injectionDAO.save(arg); } }
2.spring-injection.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" > <bean id="injectionService" class="main.com.pt.ioc.injection.service.InjectionServiceImpl"> <constructor-arg name="injectionDAO" ref="injectionDAO"></constructor-arg> </bean> <bean id="injectionDAO" class="main.com.pt.ioc.injection.dao.InjectionDaoImpl"></bean> </beans>
三.测试方法
@RunWith(BlockJUnit4ClassRunner.class) public class TestInjection extends UnitTestBase{ public TestInjection(){ super("classpath*:spring-injection.xml"); } @Test public void testSetter(){ InjectionService service = super.getBean("injectionService"); service.save("对不起,你是傻逼"); } }
相关推荐
主要介绍了详解Spring中bean的几种注入方式,主要介绍了4种注入,主要有属性注入、构造函数注入、工厂方法注入,非常具有实用价值,需要的朋友可以参考下
Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class文件,动态实现spring bean 的动态加载,并通过UrlClassLoader完成jar和class文件的加载。可以实现jar的热替换。spring的bean动态加载则需要对...
通过@Bean 和spring的factoryBean注入的bean. 以及对应@service注解注入的类 通过@Autowired 注入对象的时间是现根据类型在根据beanName获取的案例集合
bean加入spring容器管理的方式,bean加入applicationcontext容器的方式
这是在网上下载的例子,平时我们用的ioc都是在web中,本例实现在java application中实现依赖注入
Spring-注入依赖,AOP,自动注入Bean。入门。为什么没有0积分?
JavaSpring2 提交1:通过Setter注入配置Spring Bean 提交2:包含通过构造函数注入配置Spring Bean(添加餐类,MyApp包,FileContext路径)
实例主要讲述了,Spring的Xml(list,set,map)怎样进行注入值
主要给大家介绍了关于spring boot中几种注入方法的一些个人看法,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
Spring IOC和DI概述,Bean的配置形式,IOC容器BeanFactory和ApplicationContext概述,依赖注入的方式,属性注入,构造器注入等案例
IOC注入bean有哪几种,写了几种Spring的bean注入方式demo练习例子,欢迎您观看和留言。免费共享浏览、下载。
spring动态向容器中添加bean和删除指定bean,不需要重启应用
NULL 博文链接:https://pczhuce-126-com.iteye.com/blog/1315170
xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context=...
Spring 大量引入了Java 的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。org.springframework.beans包中包括了这些核心...
Quartz中注入Spring生成的Bean,是调度系统和业务系统联系在一起。
主要给大家介绍了关于Spring循环依赖的正确性,以及Bean注入的顺序关系的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
3.12 将Spring Bean注入领域对象 147 3.12.1 问题 147 3.12.2 解决方案 147 3.12.3 工作原理 148 3.13 小结 151 第4章 Spring中的脚本 152 4.1 用脚本语言实现Bean 152 4.1.1 问题 152 4.1.2 解决...
使用 @Qualifier 注解是解决 Spring 中多个同类型 Bean 注入冲突的一种常见方法。当我们在 Spring 容器中存在多个同一接口或父类的实现时,如果不明确指定要注入哪个实现,Spring 就会抛出 "Consider marking one of...
3.12 将Spring Bean注入领域对象 147 3.12.1 问题 147 3.12.2 解决方案 147 3.12.3 工作原理 148 3.13 小结 151 第4章 Spring中的脚本 152 4.1 用脚本语言实现Bean 152 4.1.1 问题 152 4.1.2 解决...