spring框架:ioc注解整理

2024-01-02 09:50:04

@Component用于修饰SpringBoot中的组件,会被组件扫描并生成实例化对象。@Controller、@Service、@Repository都是特殊的组件注解。

@Repository用于修饰dao层的组件,dao层组件专注于系统数据的处理,例如数据库中的数据,同样会被组件扫描并生成实例化对象。

@Service用于修饰service层的组件,service层组件专注于系统业务逻辑的处理,同样会被组件扫描并生成实例化对象。

@Controller用于修饰MVC中controller层的组件,SpringBoot中的组件扫描功能会识别到该注解,并为修饰的类实例化对象,通常与@RequestMapping联用,当SpringMVC获取到请求时会转发到指定路径的方法进行处理。

@PostConstruct用于修饰方法,当对象实例被创建并且依赖注入完成后执行,可用于对象实例的初始化操作。

@PreDestroy用于修饰方法,当对象实例将被Spring容器移除时执行,可用于对象实例持有资源的释放。

@Scope用于声明一个SpringBean实例的作用域,作用域的范围有以下几种:

singleton:单例模式,在Spring容器中该实例唯一,Spring默认的实例模式。

prototype:原型模式,每次使用实例都将重新创建。

request:在同一请求中使用相同的实例,不同请求重新创建。

session:在同一会话中使用相同的实例,不同会话重新创建。

@Scope("singleton")/@Scope(value= ConfigurableBeanFactory.SCOPE_SINGLETON)

@Scope("prototype")/@Scope(value= ConfigurableBeanFactory.SCOPE_PROTOTYPE)

@Autowired会根据对象的类型自动注入依赖对象,默认要求注入对象实例必须存在,可以配置required=false来注入不一定存在的对象。

@Qualifier当同一个对象有多个实例可以注入时,使用@Autowired注解无法进行注入,这时可以使用@Qualifier注解指定实例的名称进行精确注入。

@Resource默认会根据对象的名称自动注入依赖对象,如果想要根据类型进行注入,可以设置属性为type = AdminService.class

文章来源:https://blog.csdn.net/u010605984/article/details/135322099
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。