我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Spring核心注释如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Spring核心注释如何使用

本篇内容主要讲解“Spring核心注释如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring核心注释如何使用”吧!

这是所有已知的Spring核心注释的列表。

Spring核心注释如何使用

@Autowired

我们可以使用  @Autowired 注释  来标记Spring将要解析和注入的依赖关系。我们可以将这个注释与构造函数,setter或字段注入一起使用。

构造函数注入:

@RestController
公共 类 CustomerController {
    私人 CustomerService  customerService ;

    @Autowired
    public  CustomerController(CustomerService  customerService){
        这个。customerService  =  customerService ;
    }
}

二传手注射:

进口 组织。弹簧框架。豆子。工厂。注释。自动装配 ;
进口 组织。弹簧框架。网络。绑定。注释。RestController ;
@RestController
公共 类 CustomerController {
    私人 CustomerService  customerService ;
    @Autowired
    public  void  setCustomerService(CustomerService  customerService){
        这个。customerService  =  customerService ;
    }
}

现场注入:

进口 组织。弹簧框架。豆子。工厂。注释。自动装配 ;
进口 组织。弹簧框架。网络。绑定。注释。RestController ;
@RestController
公共 类 CustomerController {
    @Autowired
    私人 CustomerService  customerService ;
}
有关更多详细信息,请访问我们关于@Autowired和 Spring依赖注入指南的文章。

@豆

  •  @Bean 是方法级注释和XML元素的直接模拟。注释支持一些提供的属性,例如init-method,destroy-method,auto-wiring和name。

  • 您可以在带@Bean 注释@Configuration或带  注释的@Component类中使用   注释   。

以下是@Bean方法声明的简单示例  :

进口 组织。弹簧框架。背景。注释。豆 ;
进口 组织。弹簧框架。背景。注释。配置 ;
进口 com。公司名称。projectname。客户。客户服务 ;
进口 com。公司名称。projectname。订单。OrderService ;
@组态
公共 类 申请 {
    @豆
    public  CustomerService  customerService(){
        返回 new  CustomerService();
    }
    @豆
    public  OrderService  orderService(){
        返回 新的 OrderService();
    }
}

上述配置等效于以下Spring XML:

< beans >
        < bean  id = “customerService”  class = “com.companyname.projectname.CustomerService” />
        < bean  id = “orderService”  class = “com.companyname.projectname.OrderService” />
</ beans >
阅读@Bean 本文中有关注释的  更多信息  Spring @Bean Annotation with Example。

@Qualifier

此注释有助于微调基于注释的自动布线。可能存在这样的情况:我们创建多个相同类型的bean,并且只想使用属性连接其中一个bean。这可以使用@Qualifier 注释和   @Autowired 注释来控制  。

示例:考虑使用  EmailService 和  SMSService 类来实现单个   MessageService 接口。

MessageService 为多个消息服务实现创建  接口。

公共 接口 MessageService {
    public  void  sendMsg(String  message);
}

接下来,创建实现:   EmailService 和  SMSService

公共 类 EmailService  实现 MessageService {
    public  void  sendMsg(String  message){
         系统。出。println(消息);
    }
}
公共 类 SMSService  实现 MessageService {
    public  void  sendMsg(String  message){
         系统。出。println(消息);
    }
}

是时候看看@Qualifier 注释的用法了  。

公共 接口 MessageProcessor {
    public  void  processMsg(String  message);
}
公共 类 MessageProcessorImpl  实现 MessageProcessor {
    private  MessageService  messageService ;
    //基于setter的DI
    @Autowired
    @Qualifier(“emailService”)
    public  void  setMessageService(MessageService  messageService){
        这个。messageService  =  messageService ;
    }
    //基于构造函数的DI
    @Autowired
    public  MessageProcessorImpl(@Qualifier(“emailService”)MessageService  messageService){
        这个。messageService  =  messageService ;
    }
    public  void  processMsg(String  message){
        messageService。sendMsg(message);
    }
}
在本文中阅读有关此注释的更多信息:  Spring @Qualifier Annotation示例。

@需要

的  @Required 注释是一个方法级注释和施加到bean的setter方法。

此注释仅指示必须将setter方法配置为在配置时使用值依赖注入。

例如,  @Required setter方法标记了我们想要通过XML填充的依赖项:

@需要
void  setColor(String  color){
    这个。color  =  color ;
}
< bean  class = “com.javaguides.spring.Car” >
    < property  name = “color”  value = “green”  />
</ bean >

否则,   BeanInitializationException 将被抛出。

@值

Spring  @Value 注释用于为变量和方法参数指定默认值。我们可以使用@Value 注释来读取Spring环境变量以及系统变量  。

Spring  @Value 注释也支持SpEL。让我们看一下使用@Value 注释的一些示例  。

示例:我们可以使用@Value 注释为类属性指定默认值  。

@Value(“默认DBConfiguration”)
private  String  defaultName ;

该  @Value 注释参数可以是只有字符串,但春天尝试将其转换为指定的类型。以下代码将正常工作,并将布尔值和整数值分配给变量。

@Value(“true”)
private  boolean  defaultBoolean ;

@Value(“10”)
private  int  defaultInt ;

这演示了Spring   @Value -  Spring Environment Property

@Value(“$ {APP_NAME_NOT_FOUND}”)
private  String  defaultAppName ;

接下来,使用@Value 注释分配系统变量  。

@Value(“$ {java.home}”)
private  String  javaHome ;
@Value(“$ {HOME}”)
private  String  homeDir ;

春天  @Value  - SpEL

@Value(“#{ systemProperties ['java.home']}”)
private  String  javaHome ;

@依赖于取决于

@DependsOn 注释可以强制的Spring IoC容器中的bean,它是由注释之前初始化一个或多个bean   @DependsOn 注释。

所述  @DependsOn 注释可以在直接或间接地注释与任何类使用   @Component 或与所述注解的方法  @Bean。

示例:让我们创建   FirstBean 和   SecondBean 类。在此示例中,   SecondBean 在bean之前初始化   FirstBean

公共 类 FirstBean {
    @Autowired
    private  SecondBean  secondBean ;
}
公共 类 SecondBean {
    public  SecondBean(){
        系统。出。println(“通过Constuctor初始化的SecondBean”);
    }
}

基于配置类在Java中声明上述bean。

@组态
public  class  AppConfig {
    @Bean(“ firstBean ”)
    @DependsOn(value  = {
        “secondBean”
    })
    公共 FirstBean  firstBean(){
        返回 新的 FirstBean();
    }
    @Bean(“secondBean”)
    public  SecondBean  secondBean(){
        返回 new  SecondBean();
    }
}
阅读有关Spring上@DependsOn注释的更多信息 - @DependsOn注释示例。

@懒

默认情况下,Spring IoC容器在应用程序启动时创建并初始化所有单例bean。我们可以通过使用@Lazy 注释来防止单例bean的这种预初始化  。

所述   @Lazy 注释可以在任何类中使用,与直接或间接地注释   @Component 或与所述注解的方法  @Bean。

示例:考虑我们有两个bean -  FirstBean 和   SecondBean。在此示例中,我们将FirstBean 使用   @Lazy注释显式加载   。

公共 类 FirstBean {
    public  void  test(){
        系统。出。println(“FirstBean类的方法”);
    }
}
公共 类 SecondBean {
    public  void  test(){
        系统。出。println(“SecondBean类的方法”);
    }
}

基于配置类在Java中声明上述bean。

@组态
public  class  AppConfig {
    @Lazy(value  =  true)
    @豆
    公共 FirstBean  firstBean(){
        返回 新的 FirstBean();
    }
    @豆
    public  SecondBean  secondBean(){
        返回 new  SecondBean();
    }
}

我们可以看到,bean  secondBean 由Spring容器初始化,而bean  firstBean 则被显式初始化。

阅读有关@Lazy  注释的更多信息,  并在Spring上提供完整的示例 - @Lazy Annotation示例。

@抬头

注释的方法   @Lookup 告诉Spring在我们调用它时返回方法返回类型的实例。

有关此注释的详细信息,请参见 Spring @LookUp Annotation。

@主

@Primary 当存在多个相同类型的bean时,我们使用它   给bean更高的优先级。

@零件
@主
class  Car  实现 Vehicle {}
@零件
class  Bike  实现 Vehicle {}

@零件
class  Driver {
    @Autowired
    车辆 车辆 ;
}
@零件
class  Biker {
    @Autowired
    @Qualifier(“自行车”)
    车辆 车辆 ;
}
在Spring上阅读有关此注释的更多信息 - @Primary Annotation示例。

@范围

我们使用@Scope 注释来定义类的范围或  @Bean定义。它可以是单例,原型,请求,会话,globalSession或某些自定义范围。  @Component 

例如:

@零件
@Scope(值 =  ConfigurableBeanFactory。SCOPE_SINGLETON)
公共 类 TwitterMessageService  实现 MessageService {
}
@零件
@Scope(值 =  ConfigurableBeanFactory。SCOPE_PROTOTYPE)
公共 类 TwitterMessageService  实现 MessageService {
}
了解更多关于在@Scope注解 春@Scope注解与辛格尔顿范围实例和 春天@Scope注解与原型作用域实例。

@轮廓

如果我们希望Spring 只在特定的配置文件处于活动状态时才使用  @Component 类或  @Bean方法,我们可以用它来标记它   @Profile。我们可以使用注释的value参数配置配置文件的名称:

@零件
@Profile(“sportDay”)
class  Bike  实现 Vehicle {}

@进口

该   @Import 注释指示一个或多个@Configuration类进口。

例如:在基于Java的配置中,Spring提供了  @Import  注释,允许从另一个配置类加载@Bean定义。

@组态
公共 类 ConfigA {
    @豆
    public  A  a(){
        返回 新的 A();
    }
}
@组态
@Import(ConfigA。类)
公共 类 ConfigB {
    @豆
    public  B  b(){
        return  new  B();
    }
}

现在,在实例化上下文时,不需要同时指定  ConfigA类和ConfigB类,只需要显式提供ConfigB

阅读有关Spring @Import Annotation上@Import注释的更多信息 。

@ImportResource

Spring提供了一个  @ImportResource 注释,用于将bean从applicationContext.xml文件加载到ApplicationContext中。例如:考虑我们在类路径上有applicationContext.xml Spring bean配置XML文件。

@组态
@ImportResource({ “classpath *:applicationContext.xml” })
公共 类 XmlConfiguration {
}
通过Spring @ImportResource Annotation的完整示例,阅读有关此注释的更多信息 。

@PropertySource

该   @PropertySource 注释提供了一种方便的声明性机制,用于添加  PropertySource Spring的Eenvironment以与@Configuration类一起使用  。

例如,我们从文件config.properties文件中读取数据库配置,并使用Environment 将这些属性值设置为  DataSourceConfig类。

进口 组织。弹簧框架。豆子。工厂。InitializingBean ;
进口 组织。弹簧框架。豆子。工厂。注释。自动装配 ;
进口 组织。弹簧框架。背景。注释。配置 ;
进口 组织。弹簧框架。背景。注释。PropertySource ;
进口 组织。弹簧框架。核心。ENV。环境 ;
@组态
@PropertySource(“classpath:config.properties”)
公共 类 ProperySourceDemo  实现 InitializingBean {
    @Autowired
    环境 ENV ;
    @覆盖
    public  void  afterPropertiesSet()抛出 Exception {
        setDatabaseConfig();
    }
    private  void  setDatabaseConfig(){
        DataSourceConfig  config  =  new  DataSourceConfig();
        配置。setDriver(ENV。的getProperty(“jdbc.driver” ));
        配置。setUrl(ENV。的getProperty(“jdbc.url” ));
        配置。setUsername(ENV。的getProperty(“jdbc.username” ));
        配置。setPassword(ENV。的getProperty(“jdbc.password” ));
        系统。出。的println(配置。的toString());
    }
}
阅读有关Spring @PropertySource Annotation with Example的此注释的更多信息 。

@PropertySources

我们可以使用此批注指定多个   @PropertySource  配置:

 @PropertySources({
  @PropertySource(“classpath:config.properties”),
  @PropertySource(“classpath:db.properties”)
 })
 public  class  AppConfig {
  // ...
 }

到此,相信大家对“Spring核心注释如何使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Spring核心注释如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Spring核心注释如何使用

本篇内容主要讲解“Spring核心注释如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring核心注释如何使用”吧!这是所有已知的Spring核心注释的列表。@Autowired我们可
2023-06-02

Golang Template注释如何使用

这篇文章主要介绍“Golang Template注释如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang Template注释如何使用”文章能帮助大家解决问题。单行注释Golang 中
2023-07-05

VB.NET中注释如何使用

这期内容当中小编将会给大家带来有关VB.NET中注释如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。VB.NET注释可以和语句同行并跟随其后,也可以另占一整行。以下代码阐释了这两种情况。Visual
2023-06-17

如何使用Spring Cloud搭建高可用服务注册中心

这篇文章主要介绍“如何使用Spring Cloud搭建高可用服务注册中心”,在日常操作中,相信很多人在如何使用Spring Cloud搭建高可用服务注册中心问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使
2023-06-19

如何在MySQL中使用注释

MySQL中的comment用法,需要具体代码示例在MySQL中,comment即为注释。注释是一种在代码中加入说明或说明的文本,可以增加代码的可读性和可维护性。在MySQL中,我们可以在数据库、表、列以及存储过程等各个层次上添加注释。
如何在MySQL中使用注释
2024-02-22

Spring底层架构核心概念Environment怎么使用

这篇“Spring底层架构核心概念Environment怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring底
2023-07-04

Spring @Profile注解如何使用

这篇文章主要介绍“Spring @Profile注解如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring @Profile注解如何使用”文章能帮助大家解决问题。使用带有@Profile
2023-07-06

Spring @ComponentScan注解如何使用

今天小编给大家分享一下Spring @ComponentScan注解如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一
2023-07-05

Spring @InitBinder注解如何使用

这篇文章主要讲解了“Spring @InitBinder注解如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring @InitBinder注解如何使用”吧!一. @InitBin
2023-07-05

Spring中Transactional注解使用的心得(推荐)

这篇文章主要介绍了Spring中Transactional注解使用的心得,事务是用来控制数据的ACID特性的,用于保证数据的正确性和完整性,需要的朋友可以参考下
2022-11-13

如何使用注解开发spring

本篇文章为大家展示了如何使用注解开发spring,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在Spring4之后,要使用注解开发,必须要保证aop的包导入了。使用注解需要导入context约束,增
2023-06-15

Java中如何使用Spring注解

Java中如何使用Spring注解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Spring4之后,要使用注解开发,必须要保证aop的包导入了使用注解需要导入contex
2023-06-20

Spring中@ModelAttribute注解如何使用

这期内容当中小编将会给大家带来有关Spring中@ModelAttribute注解如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.@ModelAttribute注释方法   例子(1),(2),
2023-06-02

spring中如何使用@Service注解

本篇文章为大家展示了spring中如何使用@Service注解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。@Service注解的使用要说明@Service注解的使用,就得说一下我们经常在sprin
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录