spring四种依赖注入方式(转)
spring四种依赖注入方式!!
- Set注入
- package com.bless.springdemo.action;
- public class SpringAction {
- //注入对象springDao
- private SpringDao springDao;
- //一定要写被注入对象的set方法
- public void setSpringDao(SpringDao springDao) {
- this.springDao = springDao;
- }
- public void ok(){
- springDao.ok();
- }
- }
- <!--配置bean,配置后该类由spring管理-->
- <bean name="springAction" class="com.bless.springdemo.action.SpringAction">
- <!--(1)依赖注入,配置当前类中相应的属性-->
- <property name="springDao" ref="springDao"></property>
- </bean>
- <bean name="springDao" class="com.bless.springdemo.dao.impl.SpringDaoImpl"></bean>
- 构造器注入
- public class SpringAction {
- //注入对象springDao
- private SpringDao springDao;
- private User user;
- public SpringAction(SpringDao springDao,User user){
- this.springDao = springDao;
- this.user = user;
- System.out.println("构造方法调用springDao和user");
- }
- public void save(){
- user.setName("卡卡");
- springDao.save(user);
- }
- }
- <!--配置bean,配置后该类由spring管理-->
- <bean name="springAction" class="com.bless.springdemo.action.SpringAction">
- <!--(2)创建构造器注入,如果主类有带参的构造方法则需添加此配置-->
- <constructor-arg ref="springDao"></constructor-arg>
- <constructor-arg ref="user"></constructor-arg>
- </bean>
- <bean name="springDao" class="com.bless.springdemo.dao.impl.SpringDaoImpl"></bean>
- <bean name="user" class="com.bless.springdemo.vo.User"></bean>
- <bean name="springAction" class="com.bless.springdemo.action.SpringAction">
- <constructor-arg index="0" ref="springDao"></constructor-arg>
- <constructor-arg index="1" ref="user"></constructor-arg>
- </bean>
- <constructor-arg type="java.lang.String" ref=""/>
- 静态工厂的方法注入
- package com.bless.springdemo.factory;
- import com.bless.springdemo.dao.FactoryDao;
- import com.bless.springdemo.dao.impl.FactoryDaoImpl;
- import com.bless.springdemo.dao.impl.StaticFacotryDaoImpl;
- public class DaoFactory {
- //静态工厂
- public static final FactoryDao getStaticFactoryDaoImpl(){
- return new StaticFacotryDaoImpl();
- }
- }
- public class SpringAction {
- //注入对象
- private FactoryDao staticFactoryDao;
- public void staticFactoryOk(){
- staticFactoryDao.saveFactory();
- }
- //注入对象的set方法
- public void setStaticFactoryDao(FactoryDao staticFactoryDao) {
- this.staticFactoryDao = staticFactoryDao;
- }
- }
- <!--配置bean,配置后该类由spring管理-->
- <bean name="springAction" class="com.bless.springdemo.action.SpringAction" >
- <!--(3)使用静态工厂的方法注入对象,对应下面的配置文件(3)-->
- <property name="staticFactoryDao" ref="staticFactoryDao"></property>
- </property>
- </bean>
- <!--(3)此处获取对象的方式是从工厂类中获取静态方法-->
- <bean name="staticFactoryDao" class="com.bless.springdemo.factory.DaoFactory" factory-method="getStaticFactoryDaoImpl"></bean>
- 实例工厂的方法注入
- public class DaoFactory {
- //实例工厂
- public FactoryDao getFactoryDaoImpl(){
- return new FactoryDaoImpl();
- }
- }
- public class SpringAction {
- //注入对象
- private FactoryDao factoryDao;
- public void factoryOk(){
- factoryDao.saveFactory();
- }
- public void setFactoryDao(FactoryDao factoryDao) {
- this.factoryDao = factoryDao;
- }
- }
- <!--配置bean,配置后该类由spring管理-->
- <bean name="springAction" class="com.bless.springdemo.action.SpringAction">
- <!--(4)使用实例工厂的方法注入对象,对应下面的配置文件(4)-->
- <property name="factoryDao" ref="factoryDao"></property>
- </bean>
- <!--(4)此处获取对象的方式是从工厂类中获取实例方法-->
- <bean name="daoFactory" class="com.bless.springdemo.factory.DaoFactory"></bean>
- <bean name="factoryDao" factory-bean="daoFactory" factory-method="getFactoryDaoImpl"></bean>
- 总结
- <bean name="..." class="..." scope="prototype">
spring四种依赖注入方式(转)的更多相关文章
- spring 四种依赖注入方式以及注解注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- spring四种依赖注入方式
一.Set注入 这是最简单的注入方式,假设有一个SpringAction,类中需要实例化一个SpringDao对象,那么就可以定义一个private的SpringDao成员变量,然后创建SpringD ...
- 转:深入浅出spring IOC中四种依赖注入方式
转:https://blog.csdn.net/u010800201/article/details/72674420 深入浅出spring IOC中四种依赖注入方式 PS:前三种是我转载的,第四种是 ...
- spring六种种依赖注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- spring几种依赖注入方式以及ref-local/bean,factory-bean,factory-method区别联系
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- spring IOC中四种依赖注入方式
在spring ioc中有三种依赖注入,分别是:https://blog.csdn.net/u010800201/article/details/72674420 a.接口注入:b.setter方法注 ...
- SpringDI四种依赖注入方式详解
文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star!搜索关注微信公众号 [码出Offer] 领取各种学习资料! LOGO SpringDI(依赖注入) 一.DI概述 De ...
- 深入浅出spring IOC中三种依赖注入方式
深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和 ...
- 【SSH系列】深入浅出spring IOC中三种依赖注入方式
spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ...
随机推荐
- [转]NuGet学习笔记(1) 初识NuGet及快速安装使用
关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录. 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package M ...
- 【JZOJ3316】非回文数字
description 如果一个字符串从后往前读与从前往后读一致,我们则称之为回文字符串.当一个数字不包含长度大于1的子回文数字时称为非回文数字.例如,16276是非回文数字,但17276不是,因为它 ...
- 动态设置背景图片,class,style
1.动态设置背景图片<div v-if='img ' :style="{background: 'url('+ img +')',backgroundSize:cover }" ...
- vue-cli新手总结
项目中需要用到vue-cli脚手架来搭建前端框架,对于vue小白,总结一下自己遇到的问题以及解决方案,还要学习的地方有很多. vue-cli安装下载网上有很多教程,但对于新手而言,有些地方需要自己摸索 ...
- iOS之UITableView加载网络图片cell自适应高度
#pragma mark- UITableView - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSI ...
- Linux 下的终端
终端: 1 虚拟终端 ctrl + alt + F(1-6) : ctrl + alt + F7 : 图形终端 启动图形终端 : Gnome : #startx 或者 #startx &am ...
- PAT甲级——A1068 Find More Coins
Eva loves to collect coins from all over the universe, including some other planets like Mars. One d ...
- 让html里的js脚本延迟5秒运行
setTimeout( function(){ //add your code}, 5 * 1000 );//延迟5000毫米
- ElasticSearch入门介绍之会当凌绝顶(一)
ElasticSearch也是一款非常优秀的开源的全文检索框架,以大名鼎鼎的Apache Lucene为基础,高度封装了更丰富,易用的API,同时与Apache Solr一样,提供了非常强大的分布式集 ...
- Codeforces 486D. Valid Sets
D. Valid Sets time limit per test 1 second memory limit per test 256 megabytes input standard input ...