天天看点

spring中注解配置Ioc中常用注解

使用注解注入Ioc容器时(使用时要导入aop.jar包),xml文件中需要配置告 诉其要扫描的包

<context:component-scan base-package=“包名”>之后这个将会扫描这个包下及其子 包中类和接口上的注解

@Component注解将其下方的类通过反射注入Ioc容器

属性:value指的是这个类的反射的唯一Id当不使用时是以类名且首字小写

当@component注解中只有一个值时可以不写value直接写Id名字多个时就要指 定写出

@Controller:一般用在表现层

@Service:一般用在业务层

@Repository:一般用在持久层

以上三个注解和@Component注解效果一样是spring框架为我们提供的删除使用的使我们的三层更加清晰

@Autowired注解只要容器中有唯一一个bean对象才会注入(注入之前Ioc容器中这个相匹配的value并且Ioc中的bean时默认单例的)之后set方法就不是必须的可以删去

出现位置:变量上 方法上

@Autowired

@Qualifier(“accountDao”)

private IAccountDao accountDao = null;

访问修饰符 数据类型 变量名 数据类型

这个注解根据所修饰的变量的数据类型进行自动注入,在自动注入之前会检查之前注入Spring的Ioc容器(Map结构)中key所对应的类及其这个类的接口是否含有于数据类型相同的的类和接口有点花将自动注入,如果没有相匹配的将报错,当有多个匹配时将会使用变量名当做唯一的Key查找后注入

@Qualifier注解

作用:在按照类中注入的基础上再按照名称注入它在给类成员注入时不能单独使用但在给方法注入时可以单独使用(与类成员注入时应该和@Autowired配合使用)

@Resource注解

作用:直接按照bean的Id注入可以独立使用

属性:name用于指定bean的id

@Autowired @Resource @Qualifier这三个注解只能注入其他bean类型数 据不能实现基本类型和String类型的注入,集合类型的注入只能通过XML配置实现

@Value

作用:用于指定数据的值,可以使用spring的SpEL(也就是spring的el表达式写法${表达式})

spring中注解配置Ioc中常用注解

@Scope

作用:指定bean(一个bean就相当于一个对象)的作用范围多使用在类上

spring中的类对象默认时单例(每个类对象地址相同)的

属性:

value:指定范围的取值常用取值singleton(单例) prototype(多例)

@PreDestroy

作用:用于指定销毁方法和bean中的destroy-method方法一样

@PostConstruct

作用:指定初始化方法和bean中的init-method方法一样

多例情况下的销毁spring不负责

@Configuration注解

作用:指定一个类为配置类作用和bean.xml一样

配合使用的注解为@ComponentScan

作用:指定扫描的包和<context:component-scan base-package=“包名”>效果一样

属性:value和basePackages={“包名(类路径或者包名这是一个数组形式可以填写多个包名)”}

细节:当使用这个注解类时当在这个类中定义含参数的方法时spring框架将会自动在Ioc容器找查找与其参数名称相同的唯一的id当存在多个相同的id时可以选择修改参数名称

使用对应的id也可以在这个参数的数据类型前面添加@Qulifier(“你想使用的id名称”)注解表示当没有找到时将使用这个注解中的id方式和@Autowired一样

spring框架中的bean配置的对象默认时单例

@import(“类名.class”)

value:作用是用于指定其他类的字节码

作用:用于导入其他的配置类

位置:放于@Configuration注解下面相当于导入子配置类当扫描时Configuration注解(被称为主配置类)时将会自动导入并且可以使用扫描import中类所在的包

@PropertySource(“classpath:propertise文件路径”)

作用:指定propert文件的位置

value:指定文件名称和路径

classpath:表示类路径下

@Bean

作用:将方法的返回值注入Ioc容器

属性:name 用于指定唯一的id不写时使用当前方法名作为id值

@Primary:用在类上,表示优先使用这个类的bean

@RunWith

作用:实现junit和spring的整合实现 ApplicationContext使用@Autowired自动注入(思路是重写Junit的mian方法)

/**

* spring整合junit配置

* 1,导入依赖spring-test

* 2,使用@RunWith注解将main方法替换成spring提供的main

* 3.告知spring运行器,spring和Ioc创建是基于注解还是xml并且说明位置

* @ContextConfiguration

* locations:指定xml文件的位置加上classpath关键字,表示在类路下

*

spring中注解配置Ioc中常用注解

* class:指定注解注入时@Configuration所修饰的类的位置

@ContextConfiguration(classes = springconfing.class)