@Bean
产生一个Bean对象,将这个Bean交给Spring来管理,Bean生命周期分为三个阶段:Bean创建、初始化、销毁,创建指给Bean分配对应的内存空间,初始化指创建对象并执行赋值,最后进行初始化的操作
@Autowired和@Resource
相同点:
都是用于对象的注入的时候所使用的注解
都可以声明在字段和setter方法上
不同点:
注入方式不同: @Resource的默认注入方式是byName,@Autowired的默认注入方式是byType
来源不同: @Autowired的注解来自于Spring @Resource的注解来自于J2EE
严格程度: @Autowired和@Resource注入的对象需要在IOC容器中存在,不然会抛出异常,但是@Autowired可以加上required=false来告诉 Spring 在找不到依赖时忽略注入,而不是抛出异常
什么是byName什么是byType
byName 就是通过Bean的id或者name,byType就是按Bean的Class的类型
@Controller
将类标识为 Spring MVC 的控制器组件,控制器类中可以包含多个处理请求的 @RequestMapping,@GetMapping、@PostMapping 等方法,这些方法用来处理特定的 URL 请求
@ResponseBody
将方法的返回值转换为指定格式(如 JSON 或 XML)并写入 HTTP 响应体,常用于返回 JSON 数据到前端,特别是在构建 RESTful API 时。
@RquestBody
将 HTTP 请求体中的 JSON、XML 等格式的数据转换为 Java 对象
@Requestparam
用来标注在控制器方法的参数上,从 request 中获取请求的值赋值给方法的参数,该注解的参数默认为必填参数,如果请求中没有该参数,就会返回 400 错误
@RestController
简单理解为@ResponseBody+@Controller
@RequestMapping
将 HTTP 请求映射到控制器类或方法的基础注解
@Configuration
它是专门用于配置Spring容器的类,用于标识配置类,一般和@Bean注解一起使用,配置类可以通过@Autowired或@Resource等注解实现依赖注入,将其他Bean注入到配置类中,配置类中的@Bean方法会在运行时被调用,用于创建Bean实例并添加到Spring容器中
@Component
用于标识组件类,它是通用的注解,用于标识任何可被Spring管理的组件,@Component注解标识的类会被自动扫描然后创建对应Bean实例,因此可以通过@Autowired或@Resource等注解实现依赖注入
@Service
通常用于标识业务逻辑层的组件,表示这是一个服务层的类