欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > Java Spring Boot 常用技术及核心注解

Java Spring Boot 常用技术及核心注解

2025/3/15 14:14:00 来源:https://blog.csdn.net/LYTIT/article/details/146230560  浏览:    关键词:Java Spring Boot 常用技术及核心注解

一、常用技术

  1. 自动配置(Auto-Configuration)
    Spring Boot 根据类路径中的依赖自动配置应用程序。例如,引入spring-boot-starter-web会自动配置内嵌 Tomcat 和 Spring MVC。

    @EnableAutoConfiguration  // 启用自动配置
    
  2. 起步依赖(Starter Dependencies)
    通过预定义的依赖集合(如spring-boot-starter-data-jpa)简化依赖管理,避免版本冲突。

  3. 内嵌服务器(Embedded Server)
    默认集成 Tomcat、Jetty 或 Undertow,无需单独部署 WAR 文件。

  4. Actuator 监控
    提供生产级监控端点(如健康检查、性能指标),通过spring-boot-starter-actuator启用。



二、核心注解使用

  1. @SpringBootApplication
    作用:主类注解,组合了以下三个核心注解:
    • @Configuration:标记类为配置类,定义 Bean。
    • @EnableAutoConfiguration:启用自动配置。
    • @ComponentScan:自动扫描当前包及其子包的组件(如@Service@Controller)。
    @SpringBootApplication
    public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
    }
    
  2. @Configuration 与 @Bean
    • @Configuration:声明一个类为配置类,替代 XML 配置。
    • @Bean:在配置类中定义 Bean 实例。
    @Configuration
    public class AppConfig {@Beanpublic DataSource dataSource() {return new HikariDataSource();}
    }
    
  3. @RestController 与 @RequestMapping
    • @RestController:组合@Controller@ResponseBody,直接返回 JSON 数据。
    • @RequestMapping:映射 HTTP 请求到控制器方法。
    @RestController
    @RequestMapping("/api")
    public class UserController {@GetMapping("/users")public List<User> getUsers() {return userService.findAll();}
    }
    
  4. @Autowired 与 @Qualifier
    • @Autowired:自动注入依赖,按类型匹配。
    • @Qualifier:指定注入的 Bean 名称,解决歧义性。
  5. @Value
    注入配置文件中的属性值:
    @Value("${server.port}")
    private int port;
    
  6. @SpringBootTest
    用于集成测试,加载完整的应用程序上下文:
    @SpringBootTest
    class MyApplicationTests {@Testvoid contextLoads() {}
    }
    

三、注解说明及应用

1. 核心注解
注解说明示例
@SpringBootApplication主启动类注解,组合了 @Configuration@EnableAutoConfiguration@ComponentScan标记 main 方法所在的类
@Configuration声明一个类为配置类,替代 XML 配置定义 Bean 或配置类
@Bean在配置类中声明一个 Bean@Bean public DataSource dataSource() { ... }
@ComponentScan自动扫描组件(如 @Component, @Service 等)在启动类中指定包扫描路径
@EnableAutoConfiguration启用 Spring Boot 自动配置机制通常由 @SpringBootApplication 包含

2. Web 开发(Spring MVC)
注解说明示例
@RestController组合 @Controller@ResponseBody,直接返回 JSON/XML 数据标记 REST API 控制器类
@RequestMapping映射 HTTP 请求路径和方法@RequestMapping("/api")
@GetMapping / @PostMapping简化版请求映射(对应 HTTP 方法)@GetMapping("/users")
@RequestParam绑定请求参数到方法参数@RequestParam("name") String name
@PathVariable绑定 URL 路径变量到方法参数@PathVariable("id") Long id
@RequestBody将请求体 JSON 反序列化为对象@RequestBody User user
@ResponseStatus设置 HTTP 响应状态码@ResponseStatus(HttpStatus.CREATED)
@ExceptionHandler处理控制器内的异常@ExceptionHandler(Exception.class)

3. 数据访问(Spring Data JPA)
注解说明示例
@Entity声明 JPA 实体类标记数据库表对应的实体类
@Table指定实体对应的数据库表名@Table(name = "users")
@Id标记主键字段@Id private Long id;
@GeneratedValue主键生成策略@GeneratedValue(strategy = GenerationType.IDENTITY)
@Repository标记数据访问层(DAO)组件继承 JpaRepository 的接口
@Transactional声明事务管理(方法或类级别)@Transactional
@Query自定义 JPA 查询语句@Query("SELECT u FROM User u WHERE u.name = ?1")

4. 依赖注入(IoC)
注解说明示例
@Autowired自动注入依赖(推荐使用构造器注入)@Autowired private UserService userService;
@Component通用组件注解,标记 Spring 管理的 Bean通用组件类
@Service标记服务层组件@Service public class UserService { ... }
@Primary指定优先注入的 Bean解决多个同类型 Bean 的冲突
@Qualifier按名称注入指定 Bean@Qualifier("userServiceImpl")

5. 配置管理
注解说明示例
@Value注入配置文件中的值@Value("${app.name}")
@ConfigurationProperties将配置文件绑定到 Java 对象@ConfigurationProperties(prefix = "app")
@Profile指定配置或 Bean 在特定环境下生效@Profile("dev")

6. 安全(Spring Security)
注解说明示例
@EnableWebSecurity启用 Web 安全配置配置类继承 WebSecurityConfigurerAdapter
@PreAuthorize方法执行前的权限校验@PreAuthorize("hasRole('ADMIN')")
@Secured基于角色的访问控制@Secured("ROLE_USER")

7. 高级特性
  • AOP(面向切面编程)
    • @Aspect: 声明切面类
    • @Pointcut: 定义切入点表达式
    • @Before / @After / @Around: 定义通知类型
  • 缓存
    • @EnableCaching: 启用缓存
    • @Cacheable: 缓存方法结果
  • 消息队列(如 RabbitMQ)
    • @EnableRabbit: 启用 RabbitMQ
    • @RabbitListener: 监听消息队列
  • 定时任务
    • @EnableScheduling: 启用定时任务
    • @Scheduled: 定义任务执行时间

8. 测试
注解说明示例
@SpringBootTest启动完整 Spring 上下文进行集成测试测试类注解
@MockBean模拟并替换 Spring 上下文中的 Bean在测试中模拟依赖
@TestJUnit 测试方法@Test void testMethod() { ... }

9. Actuator 监控
  • 通过 spring-boot-starter-actuator 提供端点(如 /health, /metrics
  • 常用配置项:management.endpoints.web.exposure.include=*

10. 典型项目结构
src/main/java└── com.example.demo├── config       # 配置类(@Configuration)├── controller   # 控制器(@RestController)├── service      # 服务层(@Service)├── repository   # 数据层(@Repository)└── model        # 数据模型(@Entity)

四、其他常用技术

  • Spring Data JPA:简化数据库操作,通过@Repository@Entity注解。
  • Spring Security:通过@EnableWebSecurity配置安全策略。
  • Profile 配置:使用@Profile区分不同环境(如开发、生产)。


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词