spring/springBoot注解介绍

本文介绍Spring Boot中使用@Component与@ConfigurationProperties进行配置绑定的方法,解释@RestController注解的功能,展示@RequestMapping的不同使用方式,包括PathVariable、RequestParam及GET请求的处理,并探讨@Transactional注解在事务管理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、@Component & @ConfigurationProperties

pojo对象,需要@Component定义Spring管理Bean,@ConfigurationProperties指定前缀内容。

@Component注解相当于:@Service,@Controller,@Repository,并下面类纳入进spring容器中管理。这样才能被下一层@Autowired注入该对象。

@Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperties {

    private String size;

    private Integer age;

    public String getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }
    ...
}


二、@RestController
@RestController = @ResponseBody + @Controller

三、@RequestMapping

        A、@RequestMapping可以指定多个value: @RequestMapping(value={"/say","/hi"}) 。

        B、@RequestMapping的Get请求获取参数的方式:

              方式一、PathVariable:访问地址中间参数传输:【Restf风格】

 @RequestMapping(value="/{id}/say",method = RequestMethod.GET)
  public String say(@PathVariable("id") Integer id){
      return "Hello Spring Boot:"+id;
  }


url访问地址可以将id中间位置:http://localhost:8080/hello/233333/say

          方式二、RequestParam:访问地址后面传值:

  @RequestMapping(value="/say",method = RequestMethod.GET)
  public String say(@RequestParam("id") Integer id){
      return "Hello Spring Boot:"+id;
  }

    1 、url访问方式:http://localhost:8080/hello/say?id=110

     2、添加默认值:(@RequestParam(value = "id", required = false, defaultValue = "0") Integer id) ,如何不传id,它就会默认为0。


          方式三、@RequestMapping(value="/say",method = RequestMethod.GET)也可以写成GetMapping(value="/say")的方式。

四、@Transactional 

       在方法上面添加@Transactional注解,即说明其为同个事务。

 @Transactional
    public void insertTwo(){
        Girl girlA = new Girl();
        girlA.setSize("A");
        girlA.setAge(10);
        girlRepository.save(girlA);

        Girl girlB = new Girl();
        girlB.setSize("BBBBB");
        girlB.setAge(20);
        girlRepository.save(girlB);
    }

 

 

<think>好的,用户想了解SpringSpringBoot注解的用法和区别。首先,我需要回忆一下两者的基本概念。Spring框架是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,而Spring Boot是基于Spring的快速开发框架,简化了配置。 接下来,用户提到参考了站内的两个引用。引用[1]讲的是@SpringBootApplication注解,它整合了多个注解,包括@EnableAutoConfiguration,用于自动配置。引用[2]提到Spring MVC和WebFlux中的注解,以及Spring Boot的其他注解。需要结合这些信息来回答。 首先,应该区分Spring的核心注解Spring Boot特有的注解。比如,在Spring中,@Component用于标记组件,@Autowired用于依赖注入,而Spring Boot引入了@SpringBootApplication来简化配置。另外,Spring Boot的自动配置是通过@EnableAutoConfiguration实现的,这在传统Spring中需要手动配置。 然后,要考虑用户可能的实际需求。他们可能想知道在开发中如何选择注解,或者为什么Spring Boot更便捷。需要举例说明两者的差异,比如在启动类配置上的不同,传统Spring需要多个注解Spring Boot只需一个。 还需要注意回答结构,按照用法和区别分点说明,保持清晰。可能的问题会涉及自动配置原理、常见注解对比,或是迁移到Spring Boot的好处。确保引用正确,比如在提到@SpringBootApplication时引用[1],在涉及Web相关注解时引用[2]。 最后,生成的相关问题需要围绕用户可能进一步想了解的内容,比如核心注解的作用、自动配置的实现,或者如何选择框架。这样能帮助用户深入理解主题。</think>### SpringSpring Boot注解的用法与区别 #### 一、Spring框架核心注解 1. **组件扫描与依赖注入** - `@Component`: 标记一个类为Spring管理的组件(通用注解) - `@Service`, `@Repository`, `@Controller`: 分别用于服务层、数据层和控制层的组件,语义更明确 - `@Autowired`: 自动注入依赖对象(通过类型匹配) - `@Qualifier`: 结合`@Autowired`按名称注入特定实现 2. **配置类与Bean定义** - `@Configuration`: 标记类为配置类,替代XML配置 - `@Bean`: 在配置类中定义Bean实例 - `@ComponentScan`: 指定组件扫描路径 3. **Web相关注解** - `@RequestMapping`: 定义HTTP请求映射(Spring MVC) - `@ResponseBody`: 将返回值直接写入HTTP响应体 - `@PathVariable`, `@RequestParam`: 处理URL参数和请求参数[^2] --- #### 二、Spring Boot特有注解 1. **启动类与自动配置** - `@SpringBootApplication`: 组合了`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`,是Spring Boot项目的入口注解[^1] - `@EnableAutoConfiguration`: 根据依赖自动配置Spring应用(如检测到`spring-boot-starter-web`自动配置Tomcat) 2. **条件化配置** - `@ConditionalOnClass`: 当类路径存在指定类时生效 - `@ConditionalOnProperty`: 根据配置文件属性决定是否启用配置 3. **简化开发** - `@RestController`: 组合`@Controller`和`@ResponseBody`,直接返回JSON数据 - `@SpringBootTest`: 提供完整的应用上下文测试支持 --- #### 三、核心区别总结 | **特性** | **Spring** | **Spring Boot** | |-------------------------|-------------------------------------|-------------------------------------| | **配置方式** | 需手动配置XML或Java Config | 自动配置为主,约定优于配置 | | **启动类** | 需自定义`@Configuration`+组件扫描 | 仅需`@SpringBootApplication` | | **内嵌服务器** | 需手动配置Tomcat/Jetty | 默认内嵌Tomcat/Jetty(通过starter) | | **依赖管理** | 需手动指定版本兼容性 | 通过`spring-boot-starter-*`统一管理 | | **监控与生产就绪** | 需集成Spring Actuator | 默认集成Actuator提供健康检查等端点 | --- #### 四、典型代码对比 **传统Spring MVC配置类** ```java @Configuration @ComponentScan("com.example") @EnableWebMvc public class AppConfig implements WebMvcConfigurer { // 手动配置视图解析器、拦截器等 } ``` **Spring Boot启动类** ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); // 自动配置内嵌服务器等 } } ``` --- #### 五、如何选择? - **使用Spring**:需要对框架有精细控制(如自定义安全策略、复杂事务管理) - **使用Spring Boot**:快速构建微服务、REST API或需要简化配置的场景[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值