spring注解注入IOC
1.创建Bean对象的注解
<1>配置自定义Bean对象注解
@Component、@Controller、@Service、@repository
用法:写在类上,
例如:@Service 或者 @Service(“userService”)
作用:将该类交给Spring创建对象保存到Spring容器中,如果没有指定名称,类名首字母小写就是默认名称。
<2> 配置第三方Bean对象注解
@Bean
用法:写在配置类方法上。
例如: @Bean 或者 @Bean(“dataSource”)
作用:将方法的返回值对象保存到Spring容器,如果没有指定名称,方法名首字母小写就是默认名称。
2.依赖注入的注解
<1>注入对象类型数据
@Autowired
用法:写在成员变量/set方法/构造方法/方法参数列表中
作用:按照类型自动装配对象,如果同类型对象有多个,默认按照变量名和Bean的名称匹配,推荐使用@Qualifier指定要匹配的Bean的名称。
@Qualifier(""):指定要匹配的Bean的名称,要和@Autowired配合一起使用,不能单独使用。
<2>注入普通类型数据
<2>注入普通类型数据
@Value(""):注入普通类型数据,支持EL表达式
3.-1-和-2-两者代码示例
import com.itheima.dao.UserDao;
import com.itheima.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;@Service("userService")
public class UserServiceImpl implements UserService {@Value("20")private String num;@Autowired//本质是将容器中的对象直接赋值[前提:容器中要先添加该bean对象]//放到成员变量 底层:暴力反射//放到构造方法 可用//放到set方法 可用//方法参数列表中 可用@Qualifier("userDao")//当UserDao有两个同类型的属性,用此注解指定idprivate UserDao userDao;@Overridepublic void save() {System.out.println("UserServiceImpl save is running..."+num);userDao.save();}
}
4.初始化和销毁方法的注解
@Repository("userDao")
public class UserDaoImpl implements UserDao {@Overridepublic void save() {System.out.println("dao中的save方法执行了...");}@PostConstruct//初始化方法注解public void init(){System.out.println("init初始化..........");}@PreDestroy//销毁方法注解public void destroy(){System.out.println("destroy销毁..........");}
}
5.测试-3-和-4-实例测试类
@Testpublic void test1(){//需求:从spring容器中获取userService对象,并调用save方法//1 创建spring容器对象ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");//2 从spring容器中获取userService对象//UserService userService = (UserService) ac.getBean("userService");//UserService userService = ac.getBean(UserService.class);UserService userService = ac.getBean("userService", UserService.class);//3 调用save方法userService.save();}打印结果:
-------------------------------------------------------
init初始化..........
UserServiceImpl save is running...20
dao中的save方法执行了...
注:由于destroy销毁方法即执行方法时jvm已经关闭,所以未打印;需要打印则接收类要换成ClassPathXmlApplicationContext,使用里面的close()方法关闭
spring注解注入IOC相关推荐
- JAVA_OA管理系统(四)番外篇:使用Spring注解注入属性
本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifier,@Pos ...
- Spring依赖注入IOC(给字段赋值)和Spring测试
含义: IOC是一种思想,它的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象.这一点是通过DI(Dependency Injection,依赖注入)来实现的:Spring中对象的属性字 ...
- Spring注解注入
spring注入方式-----注解注入 (1)操作: 首先在要注入的类前面加上: @Component(与后面三个是等价的)@Repository(持久层),@Service业务层,@Controll ...
- spring注解注入详解
1.Spring配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="ht ...
- 3、spring注解注入
1.写需要注解注入的类: Propertie.java package study; public class Propertie { public void show() { System.out. ...
- 使用spring注解注入bean
使用配置文件时一般是这样写的 <bean id="person" class="com.spring.bean.Person" ><prope ...
- spring注解注入属性
转载于:https://www.cnblogs.com/hwgok/p/6751866.html
- Spring依赖注入:注解注入总结
更多11 spring 依赖注入 注解 java 注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.Service.C ...
- 【Spring学习】spring依赖注入用法总结
顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.Service.Controller.Repository.Componen ...
最新文章
- 【干货】iOS9的新特性UI Tests
- Android学习笔记之SoftReference软引用,弱引用WeakReference
- javascript动态创建可拖动、最大化、最小化的层
- Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等
- nginx和pcre错误问题
- 基础排序算法 – 冒泡排序Bubble sort
- 越来越受欢迎的Vue想学么,90后小姐姐今儿来教你
- mysql记录虚拟货币数据类型_近几年虚拟货币应用情况的相关数据
- C#二进制流的序列化和反序列化操作
- 25 The Go image/draw package go图片/描绘包:图片/描绘包的基本原理
- Windows系统历史版本简介
- 贴片二极管外形封装资料
- python如何定义类_python中如何定义类
- 题解 CF1389B 【Array Walk】
- uestc 1593 老司机破阵(线段树 or multiset)
- qt opengl 混合实现半透明
- 7-21 九宫格输入法 (15 分)
- 迷你世界滑动方块机器人怎么做_迷你世界可移动机器人详细教程和存档
- 用netty实现zcool_Netty 系列一(核心组件和实例).
- 更换移动硬盘显示图标