博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring框架中Bean管理的常用注解
阅读量:4444 次
发布时间:2019-06-07

本文共 2267 字,大约阅读时间需要 7 分钟。

1. @Component:组件.(作用在类上)可以作用在任何一个类上2. Spring中提供@Component的三个衍生注解:(功能目前来讲是一致的)    * @Controller       -- 作用在WEB层(同样可以使用@Component,因为@Controller是@Component的细化。下面两个组件同)    * @Service          -- 作用在业务层    * @Repository       -- 作用在持久层    * 说明:这三个注解是为了让标注类本身的用途清晰,Spring在后续版本会对其增强3. 属性注入的注解(说明:使用注解注入的方式,可以不用提供set方法)    * 如果是注入的普通类型,可以使用value注解        * @Value            -- 用于注入普通类型   
@Component(value="userService")public class UserServiceImpl implements UserService{    @Value(value="jack")    private String name;    public void sayHello(){        System.out.println("say spring"+name);    }}
  这样name便被赋予了jack的值。
* 如果注入的是对象类型,使用如下注解        * @Autowired        -- 默认按类型进行自动装配 (1)创建Dao层对象UserDao。这里一定要注意的是:UserDao中也应该加入组件,因为配置文件根据注解去扫描各个文件,如果扫描到就为其创建对象。
package com.huida.demo1;import org.springframework.stereotype.Repository;@Repository(value="userDao")//(一定要加上)public class UserDao {    public void save(){        System.out.println("保存用户");    }}
(2)在UserServiceImpl实现方法中,引入自定义对象userDao: 这里定义的对象名与Dao层声明的名称不同,那又是如何进行匹配的呢?@Authowired是按照类型进行匹配的,这里定义的dao的类型为UserDao,就去扫描UserDao然后为其创建对象进行匹配。
@Component(value="userService")public class UserServiceImpl implements UserService{    @Value(value="jack")    private String name;        //按照类型自动装配,按照类型进行匹配。    @Autowired    private UserDao dao;    public void sayHello(){        System.out.println("say spring"+name);        dao.save();    }}
* 如果想按名称注入            * @Qualifier    -- 强制使用名称注入 如果按照名称注入的话,value中的值应该与Dao层对象声明的名称一样才可以匹配成功
@Component(value="userService")public class UserServiceImpl implements UserService{    @Value(value="jack")    private String name;    @Qualifier(value="userDao")//按名称注入,value中的值应该与Dao层组件写的名称一样*/        private UserDao dao;    public void sayHello(){        System.out.println("say spring"+name);        dao.save();    }}
* @Resource             -- 相当于@Autowired和@Qualifier一起使用        * 强调:Java提供的注解        * 属性使用name属性
@Component(value="userService")public class UserServiceImpl implements UserService{    @Value(value="jack")    private String name;    @Resource(name="userDao")    private UserDao dao;        public void sayHello(){        System.out.println("say spring"+name);        dao.save();    }}

不管是哪种方法,执行结果都一样,执行结果为:

 

 

转载于:https://www.cnblogs.com/wyhluckdog/p/10128310.html

你可能感兴趣的文章
九度oj 题目1252:回文子串
查看>>
面向对象
查看>>
移动端调用电话、短信、唤起QQ和使用百度地图
查看>>
开发时间及内容(二)
查看>>
C++primer 10.2.1节练习
查看>>
perl 执行mysql select 返回多条记录
查看>>
mojo 关闭utf8
查看>>
tomcat架构分析(valve机制)
查看>>
消息队列RabbitMQ基础知识详解
查看>>
接口、抽象类、方法复写、类Equals方法重写
查看>>
快学Scala习题解答—第十章 特质
查看>>
Ffmpeg 定位文件(seek file)
查看>>
数据结构与算法随学随记
查看>>
微软Azure已开始支持hadoop--大数据云计算
查看>>
统计_statistics_不同的人_大样本_分析_统计方法_useful ?
查看>>
wampserver 绑定域名 外部可以正常访问
查看>>
将博客搬至CSDN
查看>>
sqoop/1.4.6/下载
查看>>
https协议及与http协议的比较
查看>>
mongodb数据备份与恢复
查看>>