将一个类声明为 Bean 的注解
@Component :通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注。
@Repository : 持久层注解,主要用于数据库相关操作。
@Service : 服务层注解,主要涉及一些复杂的逻辑,需要用到 Dao 层。
@Controller :控制层注解,主要用户接受用户请求并调用 Service 层返回数据给前端页面
@Component 和 @Bean 区别
@Component | @Bean | |
作用对象 | 类 | 方法 |
作用范围(自定义性) | 较低 | 高(第三方库中的类) |
@Autowired 和 @Resource 的区别
@Autowired | @Resource | |
来源 | Spring | JDK |
默认注入方式 | byType(根据类型进行匹配) | byName(根据名称进行匹配) |
多实现类显式指定 | @Qualifier | name属性 |
AOP相关
@component 注解:将该类声明进入spring容器中
@Aspect:声明是一个切面类bean,而不是普通bean
@Before: 该注解是声明此方法为前置通知 (目标方法执行之前就会先执行被此注解标注的方法)
@After: 该注解是声明此方法为后置通知 (目标方法执行完之后就会执行被此注解标注的方法)
@AfterReturning: 该注解是声明此方法为返回通知 (目标方法正常执行返回后就会执行被此注解标注的方法)
@AfterThrowing: 该注解是声明此方法为异常通知 (目标方法在执行出现异常时就会执行被此注解标注的方法)
@Around: 该注解是环绕通知是动态的,可以在前后都设置执行
@Pointcut 声明这是一个切点表达式方法
(使用方法:execution(方法修饰符(可选) 返回类型 方法名 参数 异常模式(可选)) ,可以使用通配符匹配字符,*可以匹配任意字符。)
@EnableAspectJAutoProxy :开启Aop注解功能
@Order :直接定义切面顺序
SpringBoot相关:
@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制
(通过@ImportAutoConfigurationImportSelector类+@Conditional)
@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类
@Configuration:允许在上下文中注册额外的 bean 或导入其他配置类
@SpringBootApplication:上面三个的集合