您的Spring框架注释指南,请注意查收

中科携手共抗白癜风 http://m.39.net/baidianfeng/a_8848932.html

这是关于几乎所有SpringFramework注释的简化,包括Core,SpringCloud,SpringMVC,SpringREST和SpringBoot。

在本文中,我们将介绍Spring框架中可用的注释。

核心Spring框架注释

Required

此注释适用于beansetter方法。考虑一个需要强制执行必需属性的方案。该

Required注释表明,受影响的bean必须在配置时所要求的属性来填充。否则,将BeanInitializationException引发类型异常。

Autowired

此注释适用于字段,setter方法和构造函数。该

Autowired注释对象内喷射隐含的依赖。

当您

Autowired在字段上使用并使用属性名称传递字段的值时,Spring会自动为字段分配传递的值。

您甚至可以

Autowired在私有属性上使用,如下所示。(但是,这是非常糟糕的做法!)

publicclassCustomer{

Autowired

privatePersonperson;

privateinttype;

}

当您

Autowired在setter方法上使用时,Spring会尝试通过对该方法进行类型自动装配来执行它。您正在指示Spring应该使用setter方法来初始化此属性,您可以在其中添加您的自定义代码,例如使用此属性初始化任何其他属性。

publicclassCustomer{

privatePersonperson;

Autowired

publicvoidsetPerson(Personperson){

this.person=person;

}

}

考虑一种情况,您需要一个类A的实例,但不将A存储在该类的字段中。您仅使用A获得B的实例,并且将B存储在此字段中。在这种情况下,setter方法自动装配将更适合您。您将没有类级别的未使用字段。

Autowired构造函数上使用时,构造函数注入发生在对象创建时。它告诉构造函数在用作Bean时自动装配。这里要注意的一件事是,任何bean类的构造器都只能带有

Autowired注释。

Component

publicclassCustomer{

privatePersonperson;

Autowired

publicCustomer(Personperson){

this.person=person;

}

}

注意:从Spring4.3开始,

Autowired在具有单个构造函数的类上成为可选的。在上面的示例中,如果省略了

Autowired注释,Spring仍将注入Person类的实例。

Qualifier

该注释与

Autowired注释一起使用。当需要对依赖项注入过程进行更多控制时,

Qualifier可以使用。

Qualifier可以在各个构造函数参数或方法参数上指定。此注释用于避免创建多个相同类型的bean并希望仅将其中一个与属性连接时发生的混乱。

考虑一个示例,其中一个接口BeanInterface由两个BeanBeanB1和BeanB2实现。

Component

publicclassBeanB1implementsBeanInterface{

//

}

Component

publicclassBeanB2implementsBeanInterface{

//

}

现在,如果BeanA自动装配该接口,Spring将不知道要注入两个实现之一。

解决此问题的一种方法是使用

Qualifier注释。

Component

publicclassBeanA{

Autowired

Qualifier(beanB2)

privateIBeandependency;

...

}

Qualifier添加了注释后,Spring现在将知道要自动装配哪个beanbeanB2,BeanB2的名称在哪里。

Configuration

此批注用于定义bean的类。

Configuration是XML配置文件的模拟-使用Java类进行配置。带有注解的Java类

Configuration本身就是一个配置,它将具有实例化和配置依赖项的方法。

这是一个例子:

Configuartion

publicclassDataConfig{

Bean

publicDataSourcesource(){

DataSourcesource=newOracleDataSource();

source.setURL();

source.setUser();

returnsource;

}

Bean

publicPlatformTransactionManagermanager(){

PlatformTransactionManagermanager=newBasicDataSourceTransactionManager();

manager.setDataSource(source());

returnmanager;

}

}

ComponentScan

该批注与

Configuration批注一起使用,以允许Spring知道要扫描的程序包以查找带批注的组件。

ComponentScan也用于使用basePackageClasses或basePackage属性指定要扫描的基本软件包。如果未定义特定的程序包,则将从声明此批注的类的程序包中进行扫描。

Bean

此注释在方法级别使用。该

Bean注释作品与

Configuration创造的Springbean。如前所述,

Configuration将具有实例化和配置依赖项的方法。此类方法将带有注释

Bean。用此注释注释的方法用作bean的ID,它创建并返回实际的bean。

这是一个例子:

Configuration

publicclassAppConfig{

Bean

publicPersonperson(){

returnnewPerson(address());

}

Bean

publicAddressaddress(){

returnnewAddress();

}

}

Lazy

该注释用于组件类。默认情况下,所有自动装配的依赖项都是在启动时创建和配置的。但是,如果要延迟初始化bean,可以

Lazy在类上使用批注。这意味着仅在首次请求时才创建和初始化Bean。您也可以在

Configuration类上使用此注释。这表明应该延迟初始化其中的所有

Bean方法

Configuration。

Value

此注释用于字段,构造函数参数和方法参数级别。所述

Value注释指示该字段或参数的默认值表达式来初始化与属性。正如

Autowired注释告诉Spring在加载应用程序上下文时将一个对象注入另一个对象一样,您也可以使用

Value注释将属性文件中的值注入到bean的属性中。它支持#{...}和${...}占位符。

SpringFramework构造型注释

Component

该注释用于类中以指示Spring组件。该

Component注释标记的Java类作为一个bean或组件,使弹簧的扫描组件的机构可以将其添加到应用程序上下文。

Controller

Controller注解用来指示类是一个Spring控制器。该注释可用于标识SpringMVC或SpringWebFlux的控制器。

Service

此注释用于类。

Service标记执行某些服务的Java类,例如执行业务逻辑,执行计算和调用外部API。此批注是

Component打算在服务层中使用的批注的一种特殊形式。

Repository

此注释用于直接访问数据库的Java类。该

Repository注释作品为满足仓库或数据访问对象的角色的任何类的标记。

该注释具有自动翻译功能。例如,当中发生异常时,该异常

Repository有一个处理程序,无需添加try-catch块。

SpringBoot注释

EnableAutoConfiguration

此批注通常放在主应用程序类上。该

EnableAutoConfiguration注解隐式定义的基“的搜索包”。这个注释告诉SpringBoot根据类路径设置,其他bean和各种属性设置开始添加bean。

SpringBootApplication

设置SpringBoot项目时,在应用程序类上使用此注释。用注释的类

SpringBootApplication必须保留在基本包中。要做的一件事

SpringBootApplication是组件扫描。但是它将仅扫描其子包。例如,如果您

SpringBootApplication在


转载请注明:http://www.aierlanlan.com/grrz/5118.html