spring ioc中的一些常用annotation注解配置

简介: spring ioc中的一些常用annotation注解配置

介绍一些spring ioc中的一些常用注解配置,注意是ioc用的一些注解

@Autowired

1 .@Autowired默认按照byType匹配的方式进行注入,如果没有一个bean的类型是匹配的则会抛异常,如果有多个bean的类型都匹配成功了,那么再按byName方式进行选择


2. @Autowired注解可以写在成员变量、setter方法、构造器函数上面


3. @Autowired如果最终匹配不成功(注意一定是一个都没有找到的情况)则会抛出异常,但是如果设置为 @Autowired(required=false),则最终匹配不成功没有不会抛出异常。


4. @Autowired可以结合 @Qualifier("beanName")来使用,则可以达到byName的效


5. @Autowired使用后需要在xml文件加入以下配置才能生效:


<context:annotation-config/>


@Resource

1 .@Resource的作用和 @Autowired差不多,只不过 @Resource是默认先用byName,如果找不到合适的就再用byType来注入


2 .@Resource有俩个属性,name和type,使用name属性则表示要byName匹配,使用type属性则表示要byType匹配


3 .@Resource使用后需要在xml文件加入以下配置才能生效:


<context:annotation-config/>


@PostConstruct 和 @PreDestroy

1. 标注了 @PostConstruct 注释的方法将在类实例化后调用。

2. 标注了 @PreDestroy 的方法将在类销毁之前调用。

@Component

1 .@Component注解可以直接定义bean,而无需在xml定义。但是若两种定义同时存在,xml中的定义会覆盖类中注解的Bean定义。


2. @Component注解直接写在类上面即可


3. @Component有一个可选的参数,用于指定 bean 的名称: @Component("boss")


4. @Component容易不指定参数,则 bean 的名称为当前类的类名小写


5. @Component使用之后需要在xml文件配置一个标签: <context:component-scan/>


6 .<context:component-scan base-package="com.briup.ioc.annotation" /> 可以表示spring需要检查哪个包下的java类,看它们是否使用了 @Component注解


7. @Component定义的bean默认情况下都是单例模式的,如果要让这个bean变为非单例,可以再结合这个 @Scope 注解来达到目标 @Scope("prototype")


@Component是Spring中所有bean组件的通用形式, @Repository @Service @Controller 则是@Component的细化,用来表示更具体的用例,分别对应了持久化层、服务层和表现层。


但是至少到现在为止这个四种注解的实质区别很小(甚至几乎没有),都是把当前类注册为spring容器中的一个bean



注意:

component-scan标签默认情况下自动扫描指定路径下的包(含所有子包),将带有 @Component @Repository @Service @Controller标签的类自动注册到spring容器。对标记了 Spring中的 @Required @Autowired @PostConstruct @PreDestroy @Resource @WebServiceRef @EJB @PersistenceContext @PersistenceUnit等注解的类进行对应的操作使注解生效(包含了annotation-config标签的作用)。

相关文章
|
5天前
|
存储 Java 数据安全/隐私保护
|
1天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
7 1
|
3天前
|
Java 开发者 Spring
Spring Boot中的资源文件属性配置
【4月更文挑战第28天】在Spring Boot应用程序中,配置文件是管理应用程序行为的重要组成部分。资源文件属性配置允许开发者在不重新编译代码的情况下,对应用程序进行灵活地配置和调整。本篇博客将介绍Spring Boot中资源文件属性配置的基本概念,并通过实际示例展示如何利用这一功能。
13 1
|
4天前
|
Java Spring 容器
【Spring系列笔记】IOC与DI
IoC 和 DI 是面向对象编程中的两个相关概念,它们主要用于解决程序中的依赖管理和解耦问题。 控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入和依赖查找。
20 2
|
4天前
|
Java 测试技术 数据库连接
Spring中ioc的优点
总之,Spring中的IoC提供了一种更加灵活、可维护、可测试和可扩展的方式来管理组件之间的依赖关系,从而提高了应用程序的质量和可维护性。这使得开发人员能够更专注于业务逻辑而不是底层的技术细节。
22 1
|
5天前
|
XML 缓存 Java
Spring核心功能IOC详解
Spring核心功能IOC详解
16 0
Spring核心功能IOC详解
|
12天前
|
存储 安全 Java
第2章 Spring Security 的环境设置与基础配置(2024 最新版)(下)
第2章 Spring Security 的环境设置与基础配置(2024 最新版)(下)
19 0
|
12天前
|
安全 Java 数据库
第2章 Spring Security 的环境设置与基础配置(2024 最新版)(上)
第2章 Spring Security 的环境设置与基础配置(2024 最新版)
37 0
|
13天前
|
XML Java 数据库
在Spring框架中,XML配置事务
在Spring框架中,XML配置事务
|
13天前
|
Java Windows Spring
Spring Boot 3.x 全新的热部署配置方式(IntelliJ IDEA 2023.1)
Spring Boot 3.x 全新的热部署配置方式(IntelliJ IDEA 2023.1)
16 1