Spring 和 Spring Boot 常用的注解示例总结

3552 篇文章 116 订阅

本文将为大家介绍 Spring 和 Spring Boot 常用的注解,以及这些注解在实际开发中的使用场景。Spring 和 Spring Boot 是 JavaEE 开发中广泛使用的框架,注解作为其核心特性之一,可以帮助开发者更加便捷地实现各种功能。

1. @Controller

@Controller 注解表示该类是一个控制器,用于处理 HTTP 请求。

在 Spring MVC 中,控制器负责处理用户发来的请求,进行业务逻辑处理,并返回合适的响应结果。@Controller 注解标识了这个类是属于 Spring MVC 的控制器,Spring 会自动将其进行注册并进行请求分发。

示例代码:

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/{id}")
    public String viewUser(@PathVariable("id") int id, Model model) {
        User user = userService.getUserById(id);
        model.addAttribute("user", user);
        return "user";
    }
}
复制代码

在上面的代码中,@Controller 注解指示了这个类是一个 Spring MVC 的控制器,@RequestMapping("/user") 指示了该控制器处理的请求前缀为 /user。同时,使用了 @GetMapping("/{id}") 注解指示了该方法处理的请求为 GET 请求,且请求路径中包含一个名为 id 的路径变量。

2. @Component

@Component 注解表示该类是一个组件,可以被 Spring 应用上下文自动扫描注入。

在 Spring 应用上下文中管理着许多组件,这些组件可以是服务、数据访问对象、配置类等等。在这些组件中,有一部分组件通常是需要被创建并管理的,而另外一些组件则是需要被注入到其他类中,这时候我们就可以使用 @Component 注解来将它们标记为组件,然后由 Spring 自动进行管理和注入。

示例代码:

@Component
public class UserService {
    public User getUserById(int id) {
        // ...
    }
}
复制代码

在上面的代码中,@Component 注解指示了该类是一个组件,Spring 会自动扫描并将其纳入应用上下文中进行管理和注入。

3. @Service

@Service 注解表示该类是一个业务逻辑层的组件。

在集成开发中,通常将应用进行分层,如数据访问层、业务逻辑层、表示层等。在这些层中,业务逻辑层负责处理业务逻辑,如验证、计算、状态管理等操作。@Service 注解将这些操作标记为业务逻辑层的组件,并且也可以被 Spring 标记为可以自动注入的组件。

示例代码:

@Service
public class UserService {
    @Autowired
    UserDao userDao;

    public User getUserById(int id) {
        return userDao.getUserById(id);
    }
}
复制代码

在上面的代码中,@Service 注解指示了该类是一个业务逻辑层的组件。同时,在该类中使用了 @Autowired 注解将该类中的 userDao 装配到容器中,以便在该类中直接使用。

4. @Repository

@Repository 注解表示该类是一个数据访问层的组件。

在 JavaEE 开发中,数据访问层负责与数据库进行数据交互,提供增、删、改、查等 CRUD 操作。@Repository 注解将数据访问层组件标记为可被 Spring 自动注入的组件,并且可以利用 Spring 的异常处理机制来统一对数据库访问过程进行异常处理。

示例代码:

@Repository
public class UserDao {
    public User getUserById(int id) {
        // ...
    }
}
复制代码

在上面的代码中,@Repository 注解指示了该类是一个数据访问层的组件。

5. @Autowired

@Autowired 注解表示自动注入组件。

在 JavaEE 中,组件之间是可以互相依赖的,比如业务逻辑层需要依赖数据访问层来获取数据。@Autowired 注解指示了自动装配依赖关系,在需要使用某个组件时,Spring 会自动查找合适的实现并将其注入到目标对象中。

示例代码:

@Service
public class UserService {
    @Autowired
    UserDao userDao;

    public User getUserById(int id) {
        return userDao.getUserById(id);
    }
}
复制代码

在上面的代码中,@Autowired 注解指示了要将 userDao 自动注入到 UserService 类中,方便在使用时直接调用 userDao 中的方法。

6. @Configuration

@Configuration 注解表示该类是一个配置类。

在 Spring 应用中,通常需要对各种组件进行配置,如数据源、消息资源等等。@Configuration 注解表示该类是一个配置类,其中定义的方法可以被 Spring 容器使用。

示例代码:

@Configuration
public class Config {
    @Bean
    public DataSource dataSource() {
        // ...
    }
}
复制代码

在上面的代码中,@Configuration 注解指示了该类是一个配置类,其中定义了 dataSource() 方法,返回的对象会被 Spring 自动装配到容器中。

7. @Bean

@Bean 注解表示该方法返回一个由 Spring 托管的对象。

在 Spring 应用中,组件可以由 Spring 容器进行管理,@Bean 注解可以标记某个方法返回的对象是由 Spring 进行管理的。通常与 @Configuration 注解一起使用。

示例代码:

@Configuration
public class Config {
    @Bean
    public DataSource dataSource() {
        // ...
    }
}
复制代码

在上面的代码中,@Bean 注解标记了 dataSource() 方法返回的对象是由 Spring 进行管理的。

8. @RequestMapping

@RequestMapping 注解表示处理 HTTP 请求的路径。

在 Spring MVC 中,@RequestMapping 注解可以用于指示控制器方法应该处理哪些 HTTP 请求,接受哪些请求参数等。同时,该注解还支持 REST 风格的 URL,使用时可以将特定路径映射到特定的方法上。

示例代码:

@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/{id}")
    public String viewUser(@PathVariable("id") int id, Model model) {
        User user = userService.getUserById(id);
        model.addAttribute("user", user);
        return "user";
    }
}
复制代码

在上面的代码中,@RequestMapping("/user") 指示了该控制器处理的请求前缀为 /user,用于处理用户请求并将结果存入 Model 中。

总结

本文介绍了 Spring 和 Spring Boot 中常用的注解,并且为每个注解提供了使用场景和示例代码。注解是 Spring 框架的核心特性之一,在实际应用中应该根据具体需要选用合适的注解,并结合 Spring 的依赖注入和控制反转等特性进行应用开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值