봄 부팅 코어 (기본 구성)

이전 봄 부팅 우리는 단순히 빠르게 SpringBoot 프로젝트를 만드는 방법에 대해 이야기한다. 우리 모두는 SpringBoot 매우 강력한 알고 쉽게 다양한 도구와 통합 할 수 있습니다,하지만 우리는이를 알고, 당신은 또한 이유를 알고 있어야합니다. 오늘, 시작과 우리는 SpringBoot 코어에 대해 함께 연구 할 핵심 너무 중요한 것 몇 장으로 구성해야하고, 오늘 우리는 기본 구성을 살펴.

클래스 입구와 @SpringBootApplication

使用过或者瞄过一眼Spring Boot工程的小伙伴都知道,
SpringBoot有一个特别显著的特点,
就是每个SpringBoot工程都会有一个入口类,
在这个入口类上都会有这么一个注解@SpringBootApplication。

这个类中有一个main方法,main方法中使用
SpringApplication.run(*Application.class,args),
用来启动SpringBoot项目。如下所示:
    public static void main(String[] args) {
        SpringApplication.run(Createproject2Application.class, args);
    }

@SpringBootApplication

@SpringBootApplication是Spring Boot的核心注解,
它是一个组合注解
(通常我们称由多个注解组成的注解叫组合注解)。点进去瞧一眼
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
@SpringBootApplication注解主要(我这里说了主要喔)组合了
@Configuration,@EnableAutoConfiguration,@ComponentScan
言外之意就是可以将这三个注解直接替换@SpringBootApplication

영상

  1. @EnableAutoCOnfiguration 봄 부팅이 자동으로 현재 경로에 클래스에 따라 구성하자 항아리 의존 프로젝트. 이러한 톰캣과 스프링 MVC를위한 스프링 부팅 스타터 웹에 의존, 자동으로 추가 의존도 톰캣과 스프링 MVC, 스프링 부팅을 추가로 자동으로 구성됩니다.

ComponentScan @ 2. 프로젝트는 라벨 @Entity를 스캔 할 수 있다면 봄 부팅 검사와 같은 수준의 수입 카테고리와 콩 덜 가방 (주석 구성을 사용)에서 JPA 엔티티 클래스, Spring 컨테이너에 추가 할 수 있습니다.

구성 @ 3. 현재 구성이 클래스는,이 봄이로드되는 것을 나타냅니다

닫기 특히 자동

SpringBoot为我们提供了自动化配置,但是在某些特定的场景下,
我们可能不需要某个自动配置,
这时可以在@SpringBootApplication中配置
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

사용자 정의 배너

什么是Banner呢,
就是在Spring Boot项目启动的时候最开始显示的横幅。
我记得我第一次启动Spring Boot项目的时候印象最深的就是这个横幅
内心不断OS(wc这么酷炫的吗)。

下面我们看看怎么自定义横幅吧。如果不自定义,默认显示下面图案

영상

수정 배너

  1. 우리는 SRC / 메인 / 소스에 새로운 banner.txt를 만들
  2. 우리 자신의 원하는 패턴을 생성 http://patorjk.com/software/taag 로그인
    영상
  3. 패턴을 복사하면 banner.txt하기
    영상
  4. 프로젝트 확인 시작
    영상

닫기 배너

当然了,这个banner也不是必须要显示的,我们可以手动关闭它。
  • 修改启动类中的main方法
  SpringApplication app = new SpringApplication(Createproject2Application.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);

봄 부팅의 프로필

Spring Boot在src/main/resources下有一个全局的配置文件
application.properties或application.yml

说到yml这种配置文件,是有点东西的。全称为yaml,是以数据为中心,
支持多种数据格式(如数组),在配置数据的时候具有面向对象的特征。

간단한 예

在两种配置文件中配置Tomcat的端口号和默认的访问路径
  • 다음 application.properties 구성 될 수있다 :
server.port=8888
server.servlet.context-path=/xicent
  • 다음 application.yml 구성 될 수있다 :
server:
  port: 8888
  servlet:
    context-path: /xicent

사실, 우리는, 더 명확하게 간단한 예제, YAML 형식에서 과거의 모든 구성 눈에 볼 수 있습니다. 그리고 그것은 주문한다.
아이디어는 이제 YML 프롬프트를 지원하지 전에도 지원합니다.
그러나 YAML은 또 다른 문제를 주도하고있다, 조금 잘못 발생할 수있는 문제가있다, 엄격한 요구 사항 YAML 형식이 있습니다.
따라서,이 프로젝트는 방법을 기반으로 현재 또는 기본 속성을 선택하는 우리를 보았다.

XML 구성을 사용하여

Spring Boot提倡的是0配置,即无xml配置,但是在实际开发中,
我们有时难免会需要加载xml配置,
这时我们就可以通过Spring提供的@ImportResource来加载xml配置
例如:
@ImportResource({"classpath:some-context.xml"})
这样我们就成功加载xml配置啦。

명령 줄 매개 변수

在Spring Boot中,我们大部分配置都写在了配置文件中,
但是有些配置我们可能需要启动时才能确定,
因此Spring Boot还提供了一种命令行配置方式
下面演示如何在运行jar包的时候,配置Tomcat的端口号
    java -jar xx.jar --server.port=8888

일반 속성 구성

在常规的Spring环境中,如果我们想加载某个properties文件,
获取其中的配置。通常的做法是在类上加注解@PropertiesSource()
指定配置文件的位置。
然后在类中使用@Value()加载属性。

在Spring Boot中,
我们只需在application.properties中定义属性,
直接用@Value注入即可。

1.application.properties 속성을 증가

xicent.author=kris
xicent.age=1

2. 항목 클래스를 수정

@Value("${xicent.author}")
String name;

@Value("${xicent.age}")
int age;

@RequestMapping("/")
String index(){
    return "author is"+name+",age is"+age;
}

기타 부동산 취득

通用我们用@Value都是获取properties配置文件中配置的属性,
但是@Value的功能可不远远不止这一点喔。
通过@Value注解,
我们还能获取系统属性,url,随机数,文字流等等。
//  普通字符串
    @Value("xicent")
    private String str;

//  操作系统名称
    @Value("#{systemProperties['os.name']}")
    private String osName;

//    随机数
    @Value("#{T(java.lang.Math).random()*168.0}")
    private double randomNumber;

//  其他bean的属性
    @Value("#{demoService.another}")
    private String fromAnother;

//  获取文件资源
    @Value("classpath:banner.txt")
    private Resource file;

//   获取地址资源
    @Value("http://www.baidu.com")
    private Resource url;

    public void testValue() throws IOException {
        System.out.println(getStr());
        System.out.println(getOsName());
        System.out.println(getRandomNumber());
        System.out.println(getFromAnother());
        System.out.println(IOUtils.toString(file.getInputStream(),"UTF-8"));
        System.out.println(IOUtils.toString(url.getInputStream()));
    }

//省略getter,setter方法

액세스 인터페이스

    @RequestMapping("/testvalue")
    void testValue() throws IOException {
        xicentBean.testValue();
    }

영상

유형 보안 구성 (등록 기준)

上面的例子,我们每个属性都要使用@Value注解会显得格外的麻烦,
我们配置的属性通常会是许多个。
在Spring Boot中使用@ConfigurationProperties
将配置与bean相关联,
这就是所谓的类型安全的配置。

这里将配置配在一个专门的properties文件中,
当然也能直接配置在application.properties中

폴더 xicent.properties은 새 파일, 다음과 같은 속성을 추가 1.resources

xicent.author=kris
xicent.age=1

2. 클래스를 만듭니다

@Component
@PropertySource("classpath:xicent.properties")
@ConfigurationProperties(prefix = "xicent")
public class XicentBean {
    private String author;
    private int age;

코드 설명 : @PropertySource 우리가로드 할 파일의 경로를 지정할 수 있습니다. 우리가 구성 속성 접두사를 지정 @ConfigurationProperties

액세스 인터페이스 만들기 (3)

    @Autowired
    XicentBean xicentBean;

    @RequestMapping("/xicent")
    XicentBean getXicent(){
        return xicentBean;
    }

4. 요청 인터페이스

영상

프로필 구성

Profile是Spring用来针对不同环境使用不同的配置文件。
一般命名为:application-{profile}.properties
(如application-prod.properties)。

然后在application.properties中
设置spring.profiles.active=prod来指定活动的Profile。
下面演示生产环境(prod)使用8888端口,
开发环境(dev)使用9999端口

1. 생산 환경의 포트 구성을 application-prod.properties 만들기

server.port=8888

2. application-dev.properties 만들기, 포트 구성 개발 환경

server.port=9999

효과 프로파일에 지정된 3.application.properties

spring.profiles.active=prod

영상

4. 시작 프로젝트, 당신은 포트 8888에 자극 프로파일 발효, 바인드를 볼 수 있습니다

영상

질문 : application.properties 및 application-prod.properties 효과를 다음 걸릴 것 포트가 장착되어 있다면? 대답은 자극이 적용됩니다이다

좋아, 훨씬 더 매력적인 오늘 일시적으로 개인의 측면에서 가지고 올 깊이 파고 수있는 많은 장소가있는 기본 구성에서 봄 부팅에 대해 이야기보다 더 공유 할 수 있습니다.
우리는 몇 가지 기본적인 이야기 오늘은, 일반적으로 기본 구성을 사용하고, 우리는 공유 자세히 따릅니다.

공공 파트너의 소수에 초점을 맞출 수처럼 : 좋은 소식 XiCent은 ~ 어떤 질문이, 오, 나 한테 물어 주시기있다

추천

출처www.cnblogs.com/xicent/p/11570535.html