【Spring常用的几个注解】

想要接单子技术可以进群,一定要靠谱!一定要靠谱!一定要靠谱!重要的事情说三遍!

群里有java、php、c#、c++、vue、layui、uniapp、bootstrap、mysql、linux等单子
在这里插入图片描述

一、组件声明注解

  1. @Component
    通用组件标记,表示该类将被Spring容器管理为Bean。

    @Component
    public class MyComponent {}
    
  2. @Service
    标记业务逻辑层组件,是@Component的特化形式。

    @Service
    public class UserService {}
    
  3. @Repository
    标记数据访问层组件(DAO),具有异常转译功能(将数据库异常转为Spring统一异常)。

    @Repository
    public class UserRepository {}
    
  4. @Controller
    标记Web控制器组件,用于处理HTTP请求(常与@RequestMapping配合使用)。

    @Controller
    public class UserController {}
    
  5. @RestController
    @Controller + @ResponseBody的组合,用于构建RESTful API(直接返回JSON数据)。

    @RestController
    public class ApiController {}
    

二、依赖注入注解

  1. @Autowired
    自动装配依赖(按类型注入),可用于字段、构造方法或Setter方法。

    @Autowired
    private UserService userService;
    
  2. @Qualifier
    配合@Autowired使用,按Bean名称解决类型冲突。

    @Autowired
    @Qualifier("mysqlDataSource")
    private DataSource dataSource;
    
  3. @Resource
    JSR-250标准注解,按名称注入依赖(等同于@Autowired+@Qualifier)。

    @Resource(name = "oracleDataSource")
    private DataSource dataSource;
    
  4. @Value
    注入外部配置值(如application.properties中的属性)。

    @Value("${server.port}")
    private int port;
    

三、配置相关注解

  1. @Configuration
    声明配置类(替代XML配置),内部包含@Bean方法。

    @Configuration
    public class AppConfig {}
    
  2. @Bean
    在配置类中声明方法返回对象为Spring Bean。

    @Bean
    public DataSource dataSource() {
        return new HikariDataSource();
    }
    
  3. @ComponentScan
    指定Spring扫描组件的包路径。

    @ComponentScan("com.example")
    public class AppConfig {}
    
  4. @PropertySource
    加载外部属性文件。

    @PropertySource("classpath:config.properties")
    

四、Web请求处理注解

  1. @RequestMapping
    映射HTTP请求到控制器方法(支持指定路径、HTTP方法)。

    @RequestMapping(value="/users", method=RequestMethod.GET)
    
  2. @GetMapping/@PostMapping
    @RequestMapping的简写形式(分别对应GET/POST请求)。

    @GetMapping("/users")
    public List<User> getUsers() {...}
    
  3. @PathVariable
    从URL路径中获取参数。

    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {...}
    
  4. @RequestParam
    从URL查询参数中获取值。

    @GetMapping("/search")
    public List<User> search(@RequestParam String keyword) {...}
    
  5. @RequestBody
    将HTTP请求体映射为Java对象(常用于接收JSON数据)。

    @PostMapping("/users")
    public void createUser(@RequestBody User user) {...}
    
  6. @ResponseBody
    将方法返回值直接写入HTTP响应体(不经过视图解析器)。


五、事务管理

  1. @Transactional
    声明方法需要事务管理(支持传播行为、隔离级别等配置)。
    @Transactional(rollbackFor = Exception.class)
    public void updateUser(User user) {...}
    

六、AOP相关

  1. @Aspect
    声明切面类(包含通知和切点)。

    @Aspect
    @Component
    public class LoggingAspect {...}
    
  2. @Before/@After
    定义前置通知/后置通知。

    @Before("execution(* com.example.service.*.*(..))")
    public void logBefore() {...}
    

七、测试相关

  1. @SpringBootTest
    标记Spring Boot集成测试类(加载完整应用上下文)。

    @SpringBootTest
    class UserServiceTest {...}
    
  2. @MockBean
    在测试中注入Mock对象。

    @MockBean
    private UserRepository userRepository;
    

:Spring Boot还提供@SpringBootApplication(包含@Configuration+@ComponentScan+@EnableAutoConfiguration)作为主启动类注解。实际开发中应根据具体模块(Core、MVC、Data、Boot等)选择合适的注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值