@AutoWired具体解释
使用 @Autowired 自动装配 Bean
@Autowired 注解自动装配具有兼容类型的单个 Bean属性
构造器, 普通字段(即使是非 public), 一切具有参数的方法都可以应用@Authwired 注解
默认情况下, 所有使用 @Autowired 注解的属性都需要被设置. 当 Spring 找不到匹配的 Bean 装配属性时, 会抛出异常, 若某一属性允许不被设置, 可以设置 @Autowired 注解的 required 属性为 false
默认情况下, 当 IOC 容器里存在多个类型兼容的 Bean 时, 通过类型的自动装配将无法工作. 此时可以在 @Qualifier 注解里提供 Bean 的名称. Spring 允许对方法的入参标注 @Qualifiter 已指定注入 Bean 的名称
@Autowired 注解也可以应用在数组类型的属性上, 此时 Spring 将会把所有匹配的 Bean 进行自动装配.
@Autowired 注解也可以应用在集合属性上, 此时 Spring 读取该集合的类型信息, 然后自动装配所有与之兼容的 Bean.
@Autowired 注解用在 java.util.Map 上时, 若该 Map 的键值为 String, 那么 Spring 将自动装配与之 Map 值类型兼容的 Bean, 此时 Bean 的名称作为键值
package com.learn.spring.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;import com.learn.spring.service.UserService;/*** 表现层的组件* * @Controller的作用:* 等价于在xml配置文件中: <bean id="userController" class="com.learn.spring.controller.UserController"></bean>* @Controller注解默认的id值是类名首字母小写,如果想要自己指定,可以使用value属性来指定* @Controller(value="id") / @Controller("id")*/
@Controller
//@Component
public class UserController {@Autowired(required=false) // 默认情况下,required=true,代表@AutoWired标注的属性必须被装配.//可以改为required=false,有就装配,没有就算了.private UserService userService ;public void login(){System.out.println("UserController login .....");userService.Handlelogin();}}
package com.learn.spring.service;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;import com.learn.spring.dao.UserDao;/*** 业务层的组件**/
@Service
public class UserService {/***@AutoWired 优先采用类型的匹配的方式进行bean的装配. 如果有多个类型兼容的bean匹配了,会使用* 属性名 与bean的id值进行匹配. */@Autowired@Qualifier("userDaoMyBatisImpl") //进一步的指定要装配的bean的id值.private UserDao userDao ;public void Handlelogin(){System.out.println("UserService handleLogin ....");//处理登录的逻辑userDao.getUserByUsernameAndPassword();}
}
package com.learn.spring.dao;public interface UserDao {public void getUserByUsernameAndPassword();}
package com.learn.spring.dao;import org.springframework.stereotype.Repository;@Repository
public class UserDaoMyBatisImpl implements UserDao{public void getUserByUsernameAndPassword(){System.out.println("UserDaoMyBatisImpl getUserByUsernameAndPassword......");}
}
@AutoWired具体解释相关推荐
- 演示如何使用application.yml文件
Spring Boot基础实例3 项目目录如下 演示如何使用application.yml文件配置Spring Boot项目 创建的application.yml文件时由application.pro ...
- Spring5春天还是配置地狱
# Spring笔记 ## 1.概述及IOC理论推导 #### 1.1 Spring简介 Spring : 春天 --->给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spr ...
- 不得不知IOC和AOP
学完spring很久了,以前复习过好几遍,可是最近再看发现还是有会忘的.所以干脆写下来方便以后自己复习,仅供个人学习使用. 一.spring概述 Spring的核心是一个轻量级(Lightweight ...
- Spring 注解 @Resource和@Autowired(转)
鸣谢:http://my.oschina.net/u/216467/blog/205951 @Resource和@Autowired两者都是做bean的注入使用. 其实@Resource并不是Spri ...
- 在Spring Framework中@Inject和@Autowired有什么区别? 在什么条件下使用哪一个?
本文翻译自:What is the difference between @Inject and @Autowired in Spring Framework? Which one to use un ...
- @Autowired注解与@resource注解的区别(十分详细)
背景: 今天下班路上看到一个大货车,于是想到了装配,然后脑海里跳出了一个注解@Autowired(自动装配),于是又想到最近工作项目用的都是@Resource注解来进行装配.于是本着学什么东西都要一钻 ...
- 不能执行autowired_想用@Autowired注入static静态成员?官方不推荐你却还偏要这么做...
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- spring的注解开发@Component @Bean @Value @Autowired、@Qualifier @PropertySource @Configuration
spring的注解开发 启动注解功能 启动注解功能 ⚫ 启动注解扫描,加载类中配置的注解项 ⚫ 说明: ◆ 在进行包所扫描时,会对配置的包及其子包中所有文件进行扫描 ◆ 扫描过程是以文件夹递归迭代的形 ...
- spring springboot websocket 不能注入( @Autowired ) service bean 报 null 错误
spring 或 springboot 的 websocket 里面使用 @Autowired 注入 service 或 bean 时,报空指针异常,service 为 null(并不是不能被注入). ...
最新文章
- JS基础知识学习(一)
- Truncate a string
- 网站颜色搭配的好网站。
- 莉莉丝最新大作《末日余晖》首曝CG,揭秘美术制作幕后
- 七牛云php20m文件上传不了,七牛云存储 - 用php上传图片,我在本地测试,用php 接口,不成功...
- FreeSql (十六)分页查询
- python计算定积分_python编程通过蒙特卡洛法计算定积分详解
- html form表单提交验证
- 了解 Nginx 主要应用场景
- Python机器人-最简单的机器人答复
- 经济金融学之1宏观经济学
- dropbox无法访问后国内网盘对比选择
- oracle 列转行字符串,oracle 字符串列转行
- 论机器学习中数据的重要性
- 面对众多的在线打印平台该怎么选择?
- 最聪明的一款奔驰,试驾奔驰最新入门A-Class
- 909422229_宝塔linux面板防护CC设置
- Keil5使用第一步
- java开发中常用的SQL语句
- JSTL --图文并茂详解(全) 轻松掌握
热门文章
- Spring boot配置log4j输出日志
- [转]Sql Server 分页存储过程
- CentOS7 安装 Node.js
- ASP.NET基础代码备忘
- Qt之QStackedWidget
- ubuntu-14.04.2-desktop-i386.iso:ubuntu-14.04.2-desktop-i386:安装Oracle11gR2
- 基于读取车载RFID标签自动开关车库门c#算法实现
- [自己动手]让Editplus更好用
- 基于数据库的分布式锁实现
- 【整理】Linux常用命令