1)IoC
//控制反转
@Component ->通用
@Repository ->持久
@Service ->业务
@Controller ->控制
//依赖注入
@Autowired
2)AOP
@Aspect ->代理类
@Pointcut ->切点
@Around ->环绕通知
@Before ->前置通知
@After ->后置通知
@AfterReturning ->返回通知
@AfterThrowing ->异常通知
注意:AOP注解默认不启用 -> 自动启动
3)Spring事务管理
注解
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
@Transactional(propagation=Propagation.REQUIRED) -> 注解到业务方法上
注意:默认事务管理不自动开启
<tx:annotation-driven transaction-manager="transactionManager"/>
业务设置事务管理后 环绕通知业务归属同一事务
4)Spring任务调度Quartz
注解
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.14.RELEASE</version>
</dependency>
@Service("taskService")
public class TaskService {
@Scheduled(cron="* * * * * ?")
public void hello(){
System.out.println("Hello Quartz\t"+DateTimeUtils.getLocalDateTime());
}
}
注意:调度任务默认不开启 -> <task:annotation-driven/>
Spring Framework 提供了基于注解的编程模型,这允许开发者通过注解声明类、方法和字段,以便实现依赖注入、事务管理等。以下是Spring框架中常用的一些注解:
核心注解
@Autowired
: 自动注入依赖。可以用在构造器、字段、setter方法上。@Qualifier
: 当有多个同类型的bean时,用于指定注入哪一个。@Component
: 声明一个类为Spring组件,使Spring能够扫描并注册它。@Service
: 声明服务层组件。@Repository
: 声明数据访问层组件。@Controller
: 声明控制层组件。@Configuration
: 声明一个类作为配置类,可以用来替代XML配置文件。@Bean
: 在配置类中,声明一个bean。@Scope
: 指定bean的作用范围(如单例、原型)。@Value
: 用于注入属性文件的值、表达式的值或直接注入固定的值。
Web 相关注解
@RequestMapping
: 映射HTTP请求到控制器的处理方法。@GetMapping
,@PostMapping
,@PutMapping
,@DeleteMapping
,@PatchMapping
: 分别用于处理HTTP的GET, POST, PUT, DELETE和PATCH请求。@RequestParam
: 获取请求参数。@PathVariable
: 获取URI模板变量的值。@RequestBody
: 获取请求体,通常用于POST或PUT请求。@ResponseBody
: 指示方法返回的对象,应该作为HTTP响应体返回。@RestController
: 声明一个控制器,其中的方法都以@ResponseBody
方式处理。
事务相关注解
@Transactional
: 声明事务边界。可以用在类或者方法级别。
Spring Boot 相关注解
@SpringBootApplication
: 开启Spring的组件扫描和自动配置。@EnableAutoConfiguration
: 开启Spring Boot的自动配置。@SpringBootTest
: 用于测试,提供完整的应用程序上下文。
条件相关注解
@Profile
: 指定某些环境下才能注册的bean。@Conditional
: 满足特定条件时才会创建一个或多个bean。
其他常用注解
@Lazy
: 延迟初始化bean。@Required
: 用于bean属性的setter方法上,表示必须在配置时设置属性值。@Order
: 定义组件的加载顺序。@Primary
: 当有多个同类型的bean时,优先选择使用带有@Primary
注解的bean。
这些注解大致覆盖了Spring的核心功能,但Spring实际上还有更多的注解来满足特定的需求,比如集成JMS、JPA、WebSockets等。开发者应该根据实际的应用场景选择合适的注解。