Spring之注解

SpringIOC注解

组件添加标记注解:

​ @Component:该注解标记类表示该类为一个普通类,表示为IOC中的一个组件bean

​ @Repository:该注解用于将数据访问层(Dao层)的类标识为Spring中的Bean

​ @Service:该注解作用域业务层(Service层),用于将业务层的类标识为Spring中的Bean

​ @Controller:该注解通常作用于控制层(controller),用于将控制层的类标识为Spring中的Bean

​ 注解中可以使用value,对应Bean中的id属性

自动装配:

​ @Autowired:在成员变量上直接标记@Autowried注解即可,实现自动装配,还可以使用构造器、set方法上,默认根据类型进行装配,如果想根据名称进行匹配,需要配合@Qualifier注解一起用

​ @Resource:默认根据Bean名称装配,未指定name时,使用属性名作为name,通过name找不到的话,会自动启动类型匹配

注入外部属性:

​ @value:可以作用于成员变量,方法参数等,

java 复制代码
 /**
  * 情况1: ${key} 取外部配置key对应的值!
  * 情况2: ${key:defaultValue} 没有key,可以给与默认值
  */
@Value("${catalog:hahaha}")
private String name;
基于配置类管理Bean注解

​ @Configurtion:标注当前类是配置类,代替XML文件

​ @PropertySource("classpath:配置文件名"):使用注解读取外部配置,替代<context:properity-placeholder标签

​ @ComponentScan(basePackages = {"包名"}):用于配置扫描包,替代<context:component-scan标签

@Bean

​ @Bean:注释用于方法实例化、配置和初始化要由SpringIoc容器管理的对象,对应于XML文件中的

​ 指定初始化和销毁回调方法@Bean(initMethod="init")和@Bean(destoryMethod="cleanup")

​ @scope:指定Bean的作用域,例如@Scope("prototype")

​ @import:注释允许从另一个配置类加载@bean定义

​ @Conditional:能根据一定条件进行判断,满足条件就给容器注入Bean

整合Spring-test5

​ @SpringJunitConfig(locations = {"classpath:xml文件"}):指定XML配置文件

​ @SpringJunitConfig(Value = {BeanConfig.class}):指定配置类

SpringAOP注解

​ @Aspect:表示这个类是一个切面类

​ @Before("execution(切点表达式)"):声明当前方法是前置通知方法

​ @AfterReturning("execution(切点表达式)")

​ @AfterThrowing("execution(切点表达式)")

​ @After("execution(切点表达式)")

​ 上述三个注解的参数:

​ value:切点表达式,例如:"execution(切点表达式)"

​ returning:获取方法返回值

​ throwing:获取目标方法派出的异常对象

​ @pointcut("execution(切点表达式)"):在一个方法上使用注解,其他的注解可以通过对该注解作用的方法进行调用实现切入点表达式的重用

​ 环绕通知:对应整个try...catch...finally结构

​ @Around

​ 作用于配置类上:

​ @EnableAspectJAutoProxy("execution(切点表达式)"):作用等同于aop:aspect-autoproxy/配置类上开启Aspectj注解支持

事务

​ @Transactional:声明方法为一个事务

事务属性:

​ 只读属性:readOnly,默认值为false,

​ 超时时间属性:timeout,默认值为-1

​ 事务异常:

​ 1、默认情况:只针对运行时异常回滚,编译时异常不回滚

​ 2、设置回滚异常:rollbackFor属性:指定哪些异常才是回滚异常,默认是RuntimeException和Error

​ 3、设置不会滚异常:在默认设置和已有设置的基础上,再指定一个异常,碰到它不会回滚noRollbackFor

​ 4、事务的隔离级别:

​ 5、事务的传播行为:

相关推荐
货拉拉技术11 分钟前
网关 MCP 转换技术:从实现到平台落地
java·架构·mcp
艾菜籽12 分钟前
SpringMVC练习:加法计算器与登录
java·spring boot·spring·mvc
浮游本尊43 分钟前
Java学习第25天 - Spring Cloud Alibaba微服务生态
java
Cg136269159741 小时前
Super的详解
java
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 便利店库存管理系统为例,包含答辩的问题和答案
java·eclipse
Nero181 小时前
代码随想录二刷第九天 | 232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项
java
程序员小凯1 小时前
Spring MVC 多租户架构与数据隔离教程
spring·架构·mvc
泉城老铁1 小时前
tomcat 部署springboot,线程经常断开导致数据库连接池关闭,如何解决
java·spring boot·后端
Nero181 小时前
代码随想录二刷第八天 | 28. 实现 strStr()、459.重复的子字符串
java
Le1Yu1 小时前
配置管理的配置与拉取、热更新的配置、动态路由
java