spring的IOC注解
1、创建对象的注解
含义:使用注解的形式创建对象,交给Spring容器管理(需要配置在类上)
@Component:组件
@Controller:web层
@Service:service层
@Repository:Dao层
默认:创建对象的唯一标识,当前类名首字母小写
value属性:指定创建对象的唯一标识
举例:
//1、使用@Component创建对象,唯一标识为:account。以下两种任选其一,其中value可以指定唯一标识。
//@Component
@Component(value="account")
public class Account{}
//2、使用@Controller创建对象,唯一标识为:account。以下两种任选其一,其中value可以指定唯一标识。
//@Controller
@Controller(value="account")
public class Account{}
//3、使用@Service创建对象,唯一标识为:accountServiceImpl。以下两种任选其一,其中value可以指定唯一标识。
//@Service
@Service(value="accountServiceImpl")
public class AccountServiceImpl{}
//4、使用@Repository创建对象,唯一标识为:accountDaoImpl。以下两种任选其一,其中value可以指定唯一标识。
//@Repository
@Repository(value="accountDaoImpl")
public class AccountDaoImpl{}
2、依赖注入的注解(可以理解为注入类中的属性)
@AutoWired:
默认:
1、按照类型(接口)从容器中查找对象,并注入。
2、按照属性名作为唯一标识从容器中查找对象,并注入。
举例:
public class AccountDaoImpl{
@AutoWired
private QueryRunner qr;
}
@Qulifier:配合@AutoWired一起使用配置到属性上
按照指定的唯一标识从容器中查找对象,并注入
value:唯一标识
举例:
public class AccountDaoImpl{
@AutoWired
@Qualifier(value="queryRunner2")
private QueryRunner qr;
}
@Resource:JDK提供的依赖注入的注解(按照指定唯一标识从容器中查找对象,并注入)
name属性:唯一标识
举例:
public class AccountDaoImpl{
@Resource(name="queryRunner")
private QueryRunner qr;
}
注意:1、@Resource是JDK提供的注解,且并不是所有的JDK版本都支持
2、@Resource可以完全取代@AutoWired+@Qulifier
@Value:注入被Spring管理的properties文件中的内容
使用properties之前需要在bean.xml中解析
<!-- 解析properties文件 -->
<bean id="propertySource" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<!-- set方式注入properties文件的路径
location:注入单个properties路径
locations:注入多个properties路径
-->
<!-- <properties name="location" classpath="jdbc.properties"></properties> -->
<property name="locations">
<array>
<value>classpath:jdbc.properties</value>
</array>
</property>
</bean>
3、声明周期相关的注解
@Scope:指定创建对象的作用域(作用范围)
value:singleton:默认,单例 || prototype:多例
@PostConstruct:指定初始化方法(对象创建之后立即执行的方法)
@PreDestory:指定销毁方法(仅单例对象有效),容器关闭,对象销毁执行的方法
举例
//默认的,可以的不写
@Repository(value="accountDao")
@Scope("singleton")
public class AccountDao{
@PostConstruct
public void init(){
System.out.println("创建对象之后执行的方法");
}
@PreDestory
public void destory(){
System.out.println("销毁之前执行的方法");
}
}
4、纯注解编程
目的:替换xml配置文件
实现:需要将spring的配置信息,配置到类:配置类
@Configruation:声明配置类
@ComponentScan:指定包扫描
basePackage:包名
@PropertySource:将properties配置文件交给speing容器管理
value:接受String类型数据(配置多个文件)
举例:
//1、声明配置类
//2、开启包扫描
//3、将propertirs文件交给spring容器管理
@Configuration
@ComponentScan(basePackage="cn.wzq")
@PropertySource(value="classpath:jdbc.properties")
public class SpringConfig{}
@Bean:配置到方法上,表明此方法的返回值交给sring容器管理
举例:
pubic class JdbcConfig{
@Bean(name="dataSource")
public DataSource getDataSource(){
ComboPooledDataSource ds=new ComboPooledDataSource();
ds.setUser("root");
ds.setPassword("root");
ds.setJdbcUel("jdbc:mysql:///speingdb");
ds.setDriverClass("com.mysql.jdbc.Driver");
return ds;
}
@Bean(name="queryRunner")
public QueryRunner getQueryRunner(DataSource dataSource){
QueryRunner qr=new QueryRunner(dataSource);
return qr;
}
}
spring的IOC注解相关推荐
- Spring学习:Spring的IOC注解
文章目录 一.简介 二.IOC注解 (一)常用的注解 (二)扫描包 (三)数据装配 三.生命周期 四.Bean实例化的时机 五.Bean在IOC容器中单例和多例 六.SpringIOC注解完整示例代码 ...
- Spring框架----Spring常用IOC注解的分类
学习基于注解的IOC配置,我们应该知道,注解配置和xml配置要实现的功能都是一样的,都是要降低程序的耦合,只是配置的形式不一样, 关于实际的开发中到底是使用xml还是注解,每家公司有着不同的使用习惯, ...
- Spring中IOC注解开发;xml中常用字符转译
目录 1.Spring注解主要用来替xml配置文件: 2.xml中特殊符号转译: 1.Spring注解主要用来替xml配置文件: /*spring原始注解主要代替<Bean>的配置 * * ...
- Spring IOC注解开发
Spring IOC注解开发 @(Spring)[Spring, ioc, 注解] Spring IOC注解开发 Spring的IOC的注解使用步骤 创建项目引入jar包 引入配置文件 创建相关包和类 ...
- .Net转Java自学之路—Spring框架篇二(IOC注解、AOP)
Spring的Bean操作(注解方式): 注解:代码中特殊的标记,使用注解可以完成相关功能. @注解名称(属性名称=属性值) 注解可以使用在类.方法.属性上面. 主要用途:可以替代配置文件来创建对象和 ...
- Spring Ioc注解式开发中注解的作用
Spring Ioc注解式开发中注解的作用 目标:本章节注重于Spring Ioc的注解式开发之中注解的作用. 基于注解的DI实现IOC 1.定义bean而注解 a.@Component @Repos ...
- 从源码深处体验Spring核心技术--基于注解的IOC初始化
Annotation 的前世今生 从 Spring2.0 以后的版本中,Spring 也引入了基于注解(Annotation)方式的配置,注解(Annotation)是 JDK1.5 中引入的一个新特 ...
- java day58【 案例:使用 spring 的 IoC 的实现账户的 CRUD 、 基于注解的 IOC 配置 、 Spring 整合 Junit[掌握] 】...
第1章 案例:使用 spring 的 IoC 的实现账户的 CRUD 1.1 需求和技术要求 1.1.1 需求 1.1.2 技术要求 1.2 环境搭建 1.2.1 拷贝 jar 包 1.2.2 创建数 ...
- 【Spring】IOC:基于注解的IOC容器初始化源码分析
从 Spring2.0 以后的版本中,Spring 也引入了基于注解(Annotation)方式的配置,注解(Annotation)是 JDK1.5 中引入的一个新特性,用于简化 Bean 的配置,可 ...
最新文章
- javascript中最最最常用的方法封装
- php判断访客语言,php实现获取及设置用户访问页面语言类
- 安装Zabbix过程中出现的问题集
- Java基础笔记 – 枚举类型的使用介绍和静态导入
- LeetCode234题:回文链表
- Python程序-打印单词的菱形字符图案
- mysql 5.7 slow_mysql 5.7 解决 set global slow_query_log=on;报错
- Spring Boot + WebMagic 实现网页爬虫,写得太好了!
- 为什么游戏加速器都会设置韩国节点
- linux检测不到声卡设备,解决 Deepin V20、Ubuntu 20.04、Linux Mint 20 声卡无法识别导致的没有声音...
- PS 批处理切图去空白
- matlab绘画复指数函数,MATLAB | 绘制复指数函数 y = exp(j*w*n)的三维图像
- 领导周末喊程序员修错误,程序员霸气回应:在下卖艺不是卖身!
- 安装html5 win7,win7官方正版64位系统安装教程
- 小程序实现canvas添加图文
- [SSM框架]—Mybatis入门
- [ MySQL ] 使用Navicat进行MySQL数据库备份 / 还原(Part 2:备份.sql文件方式)
- 关于MacPorts
- 戴尔710服务器硬盘灯,DELL R710服务器,做RAID5,更换一个硬盘后硬盘灯,黄灯和绿灯交替不断亮??急急求助...
- AE钢笔工具 贝塞尔曲线 变 直线
热门文章
- ROS环境下跑orb-slam2 单目相机
- mysql重命名数据表称方式_在MySQL中,使用()重命名数据表。_学小易找答案
- 4pam调制与解调(matlab实现)
- mysql求表中年龄同张三,mysql子查询与连接查询
- PostgreSQL增强版命令行客户端(pgcli)
- 微信小程序----全局变量
- 用计算器计算“异或CRC”
- Javascript 检测 页面是否在iframe中
- 求解哈夫曼编码Java实现,用Java实现哈夫曼编码解决方法
- mysql linux文件_MySQL在Linux系统下配置文件详解