spring5注解编程基础组件(三)

简介: spring5注解编程基础组件(三)

一、配置组件

@Configuration

把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean,

默认是类名首字母小写

其次就是取方法名称

最后优先取Bean注解的Value


@ComponentScan

在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的context:component-scan

可以添加参数筛选需要注入bean的规则,includeFilters,自己写Filter,需要实现TypeFilter接口,重写里面的帅选规则即可,

重写方法参数含义:

metadataReader 当前正在操作类的信息

metadataReaderFactory:获取上下文中所有的信息


@Scope

用于指定scope作用域的(用在类上)

prototype:原型,多例

singleton:单例

request:主要应用于web模块,同一次请求只创建一个实例

session:主要应用于web模块,同一个session只创建一个对象


@Lazy

表示延迟初始化

默认是非延迟加载

延时加载,懒加载只针对单例Bean起作用

启动懒加载,默认容器启动时不创建对象,调用对象的的功能的时候才创建


@Conditional

ng4开始提供,它的作用是按照一定的条件进行判断,满足条件给容器注册Bean

在Spring的Bean上使用,自定义实现Condition接口,根据需求重写matches方法,


@Import


导入外部资源

快速给容器导入Bean的方式

直接参数导入

实现ImportSelector接口自定义规则

实现ImportBeanDefinitionRegistrar,获得BeanDefinitionRegistry手动直接往IoC容器中放

创建自己的FactoryBean,需实现FactoryBean<要创建的对象类>接口,并重写起方法,把需要注册的对象封装为FactoryBean,获取FactoryBean时,在类名称前面加上&符号

FactoryBean,创建Bean,将Bean放入IoC容器

BeanFactory,从容器中获取Bean


生命周期控制

@PostConstruct 用于指定初始化方法(用在方法上)

@PreDestory 用于指定销毁方法(用在方法上)

@DependsOn 定义Bean初始化以及销毁时的顺序

@Bean 配置参数,如:@Bean(initMethod = “你的初始化方法”,destroyMethod = “你的销毁方法”)

分别实现InitializingBean和DisposableBean接口,重写其方法

自己写一个类,实现BeanPostProcessor接口,覆盖父类的方法,放入自己的逻辑即可,更加强大,可以监控到所有Bean


二、赋值(自动装配)组件

@Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注


@Service

用于标注业务组件


@Controller

用于标注控制层组件


@Repository

用于标注数据访问组件,即DAO组件


@Value

普通数据类型赋值

支持基本类型

支持Spring的EL表达式,可结合@PropertySource使用


@Autowired

默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用


@PropertySource

读取配置文件赋值


@Qualifier

如存在多个实例配合使用

优先级高于Autowired


@Primary

自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常


@Resource

默认按名称装配,当找不到与名称匹配的bean才会按类型装配

优先级更高,可以拿到更多的环境信息


三、织入组件

ApplicationContextAware

可以通过这个上下文环境对象得到Spring容器中的Bean


BeanDefinitionRegistryPostProcessor

BeanDefinitionRegistryPostProcessor实现了BeanFactoryPostProcessor接口,是Spring框架的BeanDefinitionRegistry的后处理器,用来注册额外的BeanDefinition


四、切面组件

@EnableTransactionManagement

添加对事务管理的支持


@Transactional

配置声明式事务信息


spring5注解编程基础组件


目录
相关文章
|
5月前
|
NoSQL 安全 Java
深入理解 RedisConnectionFactory:Spring Data Redis 的核心组件
在 Spring Data Redis 中,`RedisConnectionFactory` 是核心组件,负责创建和管理与 Redis 的连接。它支持单机、集群及哨兵等多种模式,为上层组件(如 `RedisTemplate`)提供连接抽象。Spring 提供了 Lettuce 和 Jedis 两种主要实现,其中 Lettuce 因其线程安全和高性能特性被广泛推荐。通过手动配置或 Spring Boot 自动化配置,开发者可轻松集成 Redis,提升应用性能与扩展性。本文深入解析其作用、实现方式及常见问题解决方法,助你高效使用 Redis。
550 4
|
6月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
245 0
|
6月前
|
负载均衡 Java Nacos
Spring Cloud五大组件
Spring Cloud五大组件
|
7月前
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
495 26
|
2月前
|
JSON 前端开发 Java
Spring MVC 核心组件与请求处理机制详解
本文解析了 Spring MVC 的核心组件及请求流程,核心组件包括 DispatcherServlet(中央调度)、HandlerMapping(URL 匹配处理器)、HandlerAdapter(执行处理器)、Handler(业务方法)、ViewResolver(视图解析),其中仅 Handler 需开发者实现。 详细描述了请求执行的 7 步流程:请求到达 DispatcherServlet 后,经映射器、适配器找到并执行处理器,再通过视图解析器渲染视图(前后端分离下视图解析可省略)。 介绍了拦截器的使用(实现 HandlerInterceptor 接口 + 配置类)及与过滤器的区别
199 0
|
3月前
|
Java 测试技术 数据库
说一说 SpringBoot 整合 Junit5 常用注解
我是小假 期待与你的下一次相遇 ~
|
6月前
|
JSON 前端开发 Java
Spring MVC常用的注解
@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中 的所有响应请求的方法都是以该地址作为父路径。 @RequestBody:注解实现接收http请求的json数据,将json转换为java对象。 @ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。 @Controller:控制器的注解,表示是表现层,不能用用别的注解代替 @RestController : 组合注解 @Conntroller + @ResponseBody @GetMapping , @PostMapping , @Put
|
6月前
|
Java Spring
Spring Boot的核心注解是哪个?他由哪几个注解组成的?
Spring Boot的核心注解是@SpringBootApplication , 他由几个注解组成 : ● @SpringBootConfiguration: 组合了- @Configuration注解,实现配置文件的功能; ● @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项 ● @ComponentScan:Spring组件扫描
|
6月前
|
Java 测试技术 Spring
SpringBoot+@Async注解一起用,速度提升
本文介绍了异步调用在高并发Web应用性能优化中的重要性,对比了同步与异步调用的区别。同步调用按顺序执行,每一步需等待上一步完成;而异步调用无需等待,可提升效率。通过Spring Boot示例,使用@Async注解实现异步任务,并借助Future对象处理异步回调,有效减少程序运行时间。
179 3
|
5月前
|
人工智能 缓存 自然语言处理
保姆级Spring AI 注解式开发教程,你肯定想不到还能这么玩!
这是一份详尽的 Spring AI 注解式开发教程,涵盖从环境配置到高级功能的全流程。Spring AI 是 Spring 框架中的一个模块,支持 NLP、CV 等 AI 任务。通过注解(如自定义 `@AiPrompt`)与 AOP 切面技术,简化了 AI 服务集成,实现业务逻辑与 AI 基础设施解耦。教程包含创建项目、配置文件、流式响应处理、缓存优化及多任务并行执行等内容,助你快速构建高效、可维护的 AI 应用。