Spring官方工作 / 面试必备常用注解详解

举报
JavaEdge 发表于 2021/06/04 00:49:52 2021/06/04
【摘要】 Spring3.0开启了伟大的注解时代,替代了传统的xml配置,注解使得我们的开发更加高效! 再不怕没时间陪对象啦! @Configuration 显式指定与此Configuration类关联的Spring bean定义的名称。 如果未指定(这是最常见的情况,SE们都太懒了!),将自动生成bean名称 仅当通过组件扫描获取Configuration类或直接提供给An...

Spring3.0开启了伟大的注解时代,替代了传统的xml配置,注解使得我们的开发更加高效!
再不怕没时间陪对象啦!

@Configuration

显式指定与此Configuration类关联的Spring bean定义的名称。 如果未指定(这是最常见的情况,SE们都太懒了!),将自动生成bean名称
仅当通过组件扫描获取Configuration类或直接提供给AnnotationConfigApplicationContext时,自定义名称才适用。
如果将Configuration类注册为传统的XML bean定义,则bean元素的名称/ id将优先。
返回的是建议的组件名称,如果有的话(否则为空字符串)

@Configuration使用

下面是一个使用实例,创建了一个userService和accountService的实例,accountService实例引用userService实例。

@Configuration
@ComponentScan(basePackages = { "com.test.web" })
@Import(UserConfg.class)
@ImportResource(locations = {"classpath:config/spring-beans.xml"})
public class MainConfg {

	@Bean(name = "userService", initMethod = "init", destroyMethod = "destroy")

	@Scope("singleton")

	public UserService userService() { return new UserService();

	}

	@Bean

	public AccountService accountService(UserService userService) { AccountService as = new AccountService(); as.setUserService(userService); return as;

	}
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

注解说明

@Configuration:代表这个类是一个配置类。

@ComponentScan:用来扫描指定包下面的注解类。

@Import:用来导入其他的@Configuration配置类。

@ImportResource:用来导入xml配置文件,比如某些配置一定要xml配置。

@Bean:用来定义一个bean,可以指定初始、销毁方法,及bean范围等。

这些注解都在spring-context包下,还有其他注解用来解放xml形式的配置,大量xml配置可java配置化,只要定义好,Spring会自动扫描包下面的@Configuration注解的配置文件类来装配。

@ConfigurationProperties


外化配置的注释。 如果要绑定并验证某些外部属性(例如,来自.properties文件),请将其添加到@Configuration类中的类定义或方法。

与 @Value 相反,由于属性值被外部化,因此不会评估SpEL表达式

文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。

原文链接:javaedge.blog.csdn.net/article/details/100635386

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。