最新消息:一个专业的撸码分享平台,代码哥在这里教你撸代码,赶快收藏吧!

springboot注解

java基础 daimage 284浏览 0评论

@[email protected]

我们的Example类上应用的第一个注解是 @RestController 。这被称为一个构造型(stereotype)注解。它为浏览代码的人们供给建议。对于Spring,该类扮演了一个特别角色。在本示例中,我们的类是一个web @Controller ,所以当处理进来的web请求时,[email protected] 注解供给路由信息。它告诉Spring任何来自”/”路径的HTTP请求都应当被映射到 home 办法。 @RestController 注解告诉Spring以字符串的情势衬着结不雅,并直接返回给调用者。

注: @RestController 和 @RequestMapping 注解是Spring MVC注解(它们不是Spring Boot的特定部分)

@EnableAutoConfiguration注解

第二个类级其余注解是 @EnableAutoConfiguration 。这个注解告诉Spring Boot根据添加的jar依附猜测你想若何设备Spring。因为 spring-boot-starter-web 添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开辟一个web应用处响应地对Spring进行设置。Starter POMs和Auto-Configuration:设计auto-configuration的目标是更好的应用”Starter POMs”,但这两个概念没有直接的接洽。你可以自由地遴选starter POMs以外的jar依附,并且Spring Boot将仍然尽最大年夜尽力去主动设备你的应用。

你可以经由过程将 @EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一个 @Configuration 类上来选择主动设备。
注:你只须要添加一个 @EnableAutoConfiguration 注解。我们建议你将它添加到主 @Configuration 类上。

@ConfigurationProperties(prefix = "foo")
@Bean
public FooComponent fooComponent() {
...
}

如不雅发明应用了你不想要的特定主动设备类,你可以应用 @EnableAutoConfiguration 注解的清除属性来禁用它们。

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

 


Spring Boot倡导基于Java的设备。尽管你可以应用一个XML源来调用 SpringApplication.run() ,我们平日建议你应用 @Configuration 类作为重要源。一般定义 main 办法的类也是重要 @Configuration 的一个很好候选。你不须要将所有的 @Configuration 放进一个零丁的类。 @Import 注解可以用来导入其他设备类。别的,你也可以应用 @ComponentScan 注解主动收集所有的Spring组件,包含 @Configuration 类。

如不雅你绝对须要应用基于XML的设备,我们建议你仍然年腋荷琐 @Configuration 类开端。你可以应用附加的 @ImportResource 注解加载XML设备文件。

@Configuration注解该类,等价 与XML中设备beans;[email protected]

 


 @ComponentScan

[email protected] beans,你可以应用与其他任何bean雷同的方法注入它们

 



如不雅应用膳绫擎建议的构造组织代码(将应用类放到根包下),你可以添加 @ComponentScan 注解而不须要任何参数。你的所有应用法度榜样组件( @Component , @Service , @Repository , @Controller 等)将被主动注册为Spring Beans。

 


@SpringBootApplication

很多Spring Boot开辟者老是应用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 注解他们的main类。因为这些注解被如斯频繁地一块应用(特别是你遵守以上最佳实践时),Spring Boot供给一个便利的 @SpringBootApplication 选择。
该 @SpringBootApplication 注解等价于以默认属性应用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 。

@Configuration

package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

 


 

@ConfigurationProperties

属性注入

@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
    private String username;
    private InetAddress remoteAddress;
    // ... getters and setters
}

 

@Service
public class MyService {
    @Autowired
    private ConnectionSettings connection;
    //...
    @PostConstruct
    public void openConnection() {
        Server server = new Server();
        this.connection.configure(server);
    }
}

 

正如应用@ConfigurationProperties注铰一类,[email protected]到不受你控制的第三方组件时,这种方法异常有效。

为了大年夜Environment属性设备一个bean,[email protected]

 

和膳绫擎ConnectionSettings的示例方法雷同,任何故foo为前缀的属性定义都邑被映射到FooComponent上。

@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
@NotNull
private InetAddress remoteAddress;
// ... getters and setters
}

 

 


 

@EnableConfigurationProperties

[email protected]@Configuration时,[email protected]nment属性设备

[email protected][email protected]ties bean的定义。

@Configuration
@EnableConfigurationProperties(ConnectionSettings.class)
public class MyConfiguration {
}

 

Spring Boot将测验测验校验外部的设备,默认应用JSR-303(如不雅在classpath路径中)[email protected]R-303 javax.validation束缚注解:

 


@[email protected]

@[email protected]nt类中应用办法或字段时不会应用CGLIB加强(及不应用代劳类:调用任何办法,应用任何变量,拿到的是原始对象)Spring [email protected]@Service,@Controller,@Repository
@Bean重要被用在办法上,来显式声明要用生成的类;[email protected],等价 与XML中设备beans;[email protected]

如今项目上,本工程中的类,一般都应用@Component来生成bean。在把经由过程web service取得的类,生成Bean时,应用@Bean和getter办法来生成bean

 


@Profiles

Spring Profiles供给了一种隔离应用法度榜样设备的方法,[email protected][email protected]@Profile标记,大年夜而限制加载它的机会。

 

@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}

你可以自由地应用任何标准的Spring框架技巧去定义beans和它们注入的依附。简单起见,我们经常应用 @ComponentScan 注解搜刮beans,并结合 @Autowired 构造器注入。

以正常的Spring方法,你可以应用一个spring.profiles.active的Environment属性来指定哪个设备生效。你可以应用平常的任何方法来指定该属性,例如,可以将它包含到你的application.properties中:

 spring.profiles.active=dev,hsqldb

 

转载请注明:代码哥 » springboot注解

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 赞一个
    daimage10个月前 (09-11)回复
血压计