Spring框架提供了大量的注解来简化Java配置和依赖注入。
以下是一些常用的Spring注解及其用途的说明:
核心注解
@Component
表示一个类是Spring容器的组件,它是任何Spring管理的组件的通用注解。Spring会自动扫描并注册这些组件。
@Service
用在服务层(Service Layer)的类上,是@Component的一个特化。
@Repository
用在数据访问层(Data Access Layer)的类上,是@Component的一个特化,通常用于标识DAO类。
@Controller
用在表现层(Presentation Layer)的类上,通常是Spring MVC中的控制器。
依赖注入注解
@Autowired
自动注入依赖。可以用于字段、构造器、方法上。默认情况下,如果容器中没有匹配的Bean,则会抛出异常。
@Qualifier
与@Autowired配合使用,用于指定需要注入的Bean的ID,解决多个同类型Bean注入时的歧义问题。
@Resource
类似于@Autowired,但它是Java EE的注解,可以通过名称或类型来注入依赖。
@Inject
是JSR-330的注解,功能与@Autowired类似。
配置类和Bean定义注解
@Configuration
表示一个类作为配置类,用于定义Bean。
@Bean
在配置类中,用于定义一个Bean的方法。
@ComponentScan
指定Spring在初始化时要扫描的包。
@PropertySource
指定属性文件的位置,用于加载配置属性。
切面编程(AOP)注解
@Aspect
表示一个类是切面类。
@Pointcut
定义切点,即指定哪些方法会被拦截。
@Before
通知注解,表示在方法执行前执行。
@After
通知注解,表示在方法执行后执行。
@Around
通知注解,表示环绕方法执行,可以在方法执行前后执行自定义逻辑。
@AfterReturning
通知注解,表示在方法返回后执行。
@AfterThrowing
通知注解,表示在方法抛出异常后执行。
事务管理注解
@Transactional
声明一个方法或类需要事务管理。
Web相关注解
@RequestMapping
用于映射HTTP请求到控制器方法。
@GetMapping, @PostMapping, @PutMapping, @DeleteMapping
分别用于处理GET, POST, PUT, DELETE类型的HTTP请求。
@ResponseBody
表示返回的对象是响应体,不是视图名。
@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上。
@RequestParam
用于将请求参数区数据映射到功能处理方法的参数上。
@ControllerAdvice
用于定义全局异常处理类。
@ExceptionHandler
用于定义异常处理方法。
这些注解大大简化了Spring应用程序的开发,它们使得配置更加简洁,代码更加清晰。我们可以根据具体需求选择合适的注解来使用。
18万+

被折叠的 条评论
为什么被折叠?



