下面完成,将Dao类的对象注入到Service类进行使用。

注解实现属性依赖注入,将注解加在setXxx方法上 或者 属性定义上 !(任选其一,省代码了)

第一种: 使用@Value 结合SpEL  ---- spring3.0 后用

//@Component(value="customer")

@Service(value="customer")

public class CustomerService {

//简单类型的成员变量

@Value("Rose")//参数的值简单类型

private String name="Jack";

//在属性声明上面注入,底层自动还是生成setCustomerDao()

//第一种: 使用@Value 结合SpEL  ---- spring3.0 后用

//其中customerDao表示<bean>节点id的属性值

/**第一种: 使用@Value 结合SpEL  ---- spring3.0 后用*/

//@Value(value="#{customerDao}")

private CustomerDao customerDao;

@Value(value="#{customerDao}")

public void setCustomerDao(CustomerDao customerDao) {

this.customerDao = customerDao;

}

//保存业务方法

public void save(){

System.out.println("CustomerService业务层被调用了。。。");

System.out.println("name:"+name);

customerDao.save();

}

}

第二种:使用@Autowired 结合 @Qualifier

单独使用@Autowired ,表示按照类型注入,会到spring容器中查找CustomerDao的类型,对应<bean class=””>,class的属性值,如果找到,可以匹配。

//第二种:使用spring的@Autowired

@Autowired//默认按照类型注入

private CustomerDao customerDao;

使用@Autowired + @ Qualifier 表示按照名称注入,会到spring容器中查找customerDao的名称,对应<bean id=””>,id的属性值,如果找到,可以匹配。

//第二种:使用spring的@Autowired 结合 @Qualifier

@Autowired//默认按照类型注入的

@Qualifier("customerDao")//必须配合@Autowired注解使用,根据名字注入

private CustomerDao customerDao;

第三种: JSR-250标准(基于jdk) 提供注解@Resource

单独使用@Resource注解,表示先按照名称注入,会到spring容器中查找customerDao的名称,对应<bean id=””>,id的属性值,如果找到,可以匹配。

如果没有找到,则会按照类型注入,会到spring容器中查找CustomerDao的类型,对应<bean class=””>,class的属性值,如果找到,可以匹配,如果没有找到会抛出异常。

//第三种: JSR-250标准(jdk) 提供@Resource

@Resource//默认先按照名称进行匹配,再按照类型进行匹配

private CustomerDao customerDao;

如果@Resource注解上添加name名称

使用@Resource注解,则按照名称注入,会到spring容器中查找customerDao的名称,对应<bean id=””>,id的属性值,如果找到,可以匹配。

如果没有找到,抛出异常。

//第三种: JSR-250标准(jdk) 提供@Resource

@Resource(name="customerDao")//只能按照customerDao名称进行匹配

private CustomerDao customerDao;

第四种: JSR-330标准(jdk) 提供 @Inject (麻烦点)

需要先导入 javax.inject 的 jar ,在课前资料中查找。

使用@Inject注解,则按照类型注入,

//第四种: JSR-330标准(jdk) 提供 @Inject ,配合@Named注解

@Inject//默认按照类型注入

private CustomerDao customerDao;

使用@inject和@Named注解,则按照名称注入

//第四种: JSR-330标准(jdk) 提供 @Inject ,配合@Named注解

@Inject//默认按照类型注入

@Named("customerDao")//按照名字注入,必须配合@Inject使用

private CustomerDao customerDao;

Spring复杂类型数据依赖注入相关推荐

  1. Spring集合类型属性注入

    作用:主要用于框架整合配置. Java.utils包中常用集合 (1)List (2)Set (3)Map (4)Properties Spring为集合提供了对应的标签: <list> ...

  2. spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入

    spring中的依赖注入 依赖注入: Dependency Injection IOC的作用:降低程序间的耦合(依赖关系) 依赖关系的管理:以后都交给spring来维护.在当前类需要用到其他类的对象, ...

  3. Spring.NET学习笔记8——集合类型的注入(基础篇) Level 200

    Spring.NET还支持集合类型的注入.而且使用起来也比较方便. 一.ILIst类型 使用<list>元素作为ILIst的标签,value为集合中元素的值.也可以注入对象,甚至关联其它对 ...

  4. Spring按类型自动装配注入数组、集合、Map

    Spring按类型自动装配注入数组.集合.Map时,是把应用上下文中对应类型的bean装配进集合,而不是直接查找一个对应类型的集合然后注入.以下面这段代码为例: import org.springfr ...

  5. Spring框架中提取list集合类型属性注入

    提取list集合类型属性注入 前言 引入名称空间 编写`xml`配置文件 运行结果 前言 对于某一个类型属性通用性较高的情况下,可以单独的提取出来,给需要的bean进行引用. 有关类的创建见<S ...

  6. spring学习-xml属性注入-数组--list--map--set类型

    xml设置 普通属性时(不为对象) <!--创建学生对像--><bean id="student" class="Students">& ...

  7. Spring学习笔记(二)——Spring相关配置属性注入Junit整合

    一.Spring的相关配置 1.1 Bean元素 class属性:被管理对象的完整类名 name属性:给Bean起个名字,能重复,能使用特殊字符.后来属性 id属性:给Bean起个名字,不能重复,不能 ...

  8. JavaEE开发之Spring中的依赖注入与AOP编程

    上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...

  9. Spring 3.0 注解注入详解

    Spring 3.0 注解注入详解 2011-04-15 09:44 17ZOUGUO ITEYE博客 我要评论(1) 字号:T | T AD: 一.各种注解方式 1.@Autowired注解(不推荐 ...

最新文章

  1. bireme数据源同步工具--debezium+kafka+bireme
  2. 【完结】AI1000问以后知识星球和B站见啦
  3. 【直播预告】如何设计性能更强的CNN模型
  4. 【问链-区块链基础知识系列】 第十五课 数字货币交易所的前世、今生和未来(二)
  5. 经典C语言程序100例之二七
  6. linux timerfd系列函数总结:timerfd.h
  7. EasyUI加载树控件自动展开所有目录
  8. MATLAB对表达式进行降幂排列,MATLAB上机答案.doc
  9. AXURE RP EXTENSION FOR CHROME:AXURE RP铬延展剂--谷歌工具插件使用配置(打开并成功预览本地.html文件)
  10. android模拟器mac版本下载,天天模拟器for Mac-天天模拟器mac版下载 V1.0.7-PC6苹果网...
  11. 高中数学竞赛与自主招生内部练习试题
  12. Exception: java.io.IOException: Keystore was tampered with, or password was incorrect
  13. STM32在CubeMX下HAl库编程MISO为何设置和MOSI相同
  14. John破解Linux哈希密码文件
  15. 基于MVC的社团信息管理系统
  16. MySQL math函数
  17. java io bio nio aio 详解
  18. CAD版本怎么转换?试试这种方法
  19. Android——Cocosd2d-x手机游戏开发学习思路
  20. 使用Python爬取马蜂窝网站的游记和照片

热门文章

  1. PHP Predefined Interfaces 预定义接口
  2. 可伸缩多线程任务队列
  3. vista 改xp BIOS设置(ASUS,dell,hp,Acer,Lenovo)
  4. form中的get和post方法
  5. 更改收藏夹路径和桌面路径
  6. 挑战malloc极限,看看你的系统有多大的内存分配能力
  7. [jQuery]超出容器部分...
  8. asp.net core2.0中网站发布的时候,怎么样才配置才可以使视图文件不被打包进去?...
  9. 转载:8个让程序员追悔莫及的职业建议
  10. jboss7.1.0配置数据库(mysql)