봄 부팅 소개 및 시작하기 (버전 2.1.6)

봄 부팅 2.1.6版

IMG

시간은 모든 프로그래머는 내가 생각할 수있는 라인에있는 모든 당신을 통해 현대적인 단계에서 자바 프로그래머가 더 배울 때의 감각을 가지고 있어야

무엇. 인상적인 그들은 기술을 업그레이드하는 방법에 대한 걱정없이, 응용 프로그램에서 오랜 시간을 유지할 수 있으며, 프레임의 백 엔드가 안정적입니다. 그러나 유사한

SSH, SSM은 이러한 프레임 워크는 너무 오래, 사람들은 그 자리에 더 우아하고 간단한 프레임 워크를 사용하는 기다린를 사용할 수 없습니다 SpringBoot

학생들.

봄 부팅 스프링 프레임 워크는 스프링 애플리케이션의 생성과 발전을 단순화하는 데 사용되는 새로운 가족입니다. 스프링을 사용하여

부팅은 매우 쉽게 빠르게 코딩이 간단하게 할 수 있습니다 스프링 프레임 워크, 간단한 구성 변경에 기반 응용 프로그램을 구축 할 수 있습니다, 변경, 배포 간단, 모니터

단순화. 봄 부팅 단순화 할 수 있기 때문에, 개발자는 업계에서 매우 빨리, 너무 많은 관심이 될 수 있습니다. 현재 중국 봄 부팅에

추세를 따르는 것은 봄보다 더 많은되었다.

학습 조건

SpringBoot 프레임 스프링 프레임 워크는 프레임을 기반으로하는 응용 프로그램입니다, 프레임 스프링 프레임 워크 업그레이드로 최적화를 수행

새로운 프레임 워크하십시오. 두 SpringBoot 스프링 프레임 워크는 프레임의 상단에 내장, 그래서 당신이 SpringBoot- 기꺼이 그렇게 배우고 싶어한다

스프링 프레임 워크를 마스터 감안할.

소개

봄 부팅 개요

스프링 프레임 워크는 강력하지만, 심지어 아주 간단한 프로젝트, 우리는 많은 것들을 구성해야합니다. 그래서 봄 부트 상자가

그 역할은 우리가 자동으로 구성하기 위해 단순히, 랙. 봄 부팅 코어 프레임 워크는 자동으로, 한 해당 항아리 패키지가 같이 구성되어 있습니다

봄은 우리가 자동으로 구성 도움이됩니다. 기본 구성이 수요를 충족하지 않을 경우, 우리는 또한 우리 자신의 구성을 사용하여 자동 구성 클래스를 대체 할 수 있습니다.

봄 부팅 봄 향상,하지만 빠른 개발을위한 스프링 프레임 워크를 사용하지 않습니다. == 봄 부팅 빠르게 개발 할 수 있도록 설계되었습니다 ==

스프링 프레임 워크 구조 == == 속도

IMG

사용 봄 부팅이 쉽게 별도의 실행 (실행 항아리, 임베디드 서블릿 컨테이너)를 만들 수 있습니다, 엔트리 레벨의 생산 기반 스프링 프레임 워크

현재, 우리는 봄 부팅도 약간 봄 구성 만이 필요 없습니다 사용합니다. 또한, 봄 부팅은 내장 웹 서비스를 통합

우리가 신속하게 엔터프라이즈 급 애플리케이션을 구축 할 수 있도록 시스템 모니터링 및 다른 많은 유용한 기능.

IMG

== 마이크로 서비스는 미래의 추세는, 봄 부팅 프로젝트는 마이크로 서비스 개발의 초석이다. ==

1561776361365

우리가 키 포인트 SpringBoot 내용 왜 이러한 전망이다.

봄 부트 핵심 기능

독립적으로 프로젝트의 실행하는 봄

봄 부팅 항아리는 자바 -jar xxx.jar으로, 패킷 형태로 직접 실행할 수 있습니다

장점은 다음과 같습니다 서버 자원을 절약

임베디드 톰캣과 부두 컨테이너

봄 부팅이 포함 된 톰캣, 부두를 선택할 수 있습니다, 그래서 우리는 전쟁의 형태로 프로젝트 패키지를 배포 할 필요가 없습니다.

스타터 리딩은 구성 메이븐을 단순화

예를 들어, 자동으로 통합 스프링 부팅 스타터 웹에 도입

1562656700215

스프링 부팅 스타터 부모 시작은 일반적 패키지에서 사용하는 사용 후, 관련 메이븐 의존성을 제공하는 데 사용되는, 특별한이다

라이 버전 레이블을 절약 할 수 있습니다.

자동 구성 봄

봄 부팅이 클래스 패스 항아리 패키지를 기반으로합니다, 클래스가 자동으로 콩 가방 카테고리를 항아리하도록 구성이 크게 사용하는 우리의 분포를 감소시킬 것이다

홈. 물론 SpringBoot 만 대부분의 개발 시나리오, 모든 시나리오, 우리는 자동으로 실제 개발하는 경우 구성 할 필요가 고려

봄 부팅이 충족되지 않은 상태에서 콩, 당신은 자동 구성을 사용자 정의 할 수 있습니다.

준 생산 애플리케이션 모니터링

봄 HTTP, SSH, 텔넷 프로젝트를 실행 시간 모니터링을 부팅 기반.

XML 구성없이 코드 생성

주석의 봄 부팅 광범위한 사용은 새로운 기능을 spring4.x없는 코드 생성 및 XML 구성을 제공합니다. 자바의 사용을 촉진 spring4.x

置和注解配置组合,而Spring Boot不需要任何xml配置即可实现spring的所有配置。

​ 综上我们可以得出:Spring Boot让开发变得简单,让部署变得简单,让监控变得简单,让配置变得更简单。

快速入门

​ Spring Boot 2.1.6.RELEASE需要Java 8,并且与Java 11兼容(包括在内)。

​ 还需要Spring Framework 5.1.8.RELEASE或更高版本。

第一个 Spring Boot 项目

创建项目

1561777338931

1561800412596

1561777451958

1561800452777

编写 pom.xml

​ 根据官网 Spring Boot 文档提示从 spring-boot-starter-parent 项目继承并向一个或多个 Starters

明依赖项。Spring starter 是 Spring Boot 的核心,可以理解为一个可拔插式的插件,例如,你想使用Reids插

件,那么可以使用 spring-boot-starter-redis;如果想使用MongoDB,可以使用 spring-boot-starter-data-

mongodb。

<!-- 引入springboot父类依赖 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
</parent>

<dependencies>
    <!-- springboot-web 组件 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

HelloWorld

​ HelloWorldController.java

package com.springboot.controller;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

// 表示该服务接口全部返回 json 格式 默认每个方法都加了 @ResponseBody
@RestController
// 表示所扫描到的服务
@EnableAutoConfiguration
public class HelloWorldController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }

    @RequestMapping("/getMap")
    public Map<String, Object> getMap() {
        Map<String, Object> resultMap = new HashMap<>();
        resultMap.put("code", "200");
        resultMap.put("msg", "成功");
        return resultMap;
    }

    // 主函数运行 springboot 项目
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldController.class, args);
    }

}

​ 结果

......

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::       (v1.5.10.RELEASE)

......

...Registering beans for JMX exposure on startup
...Tomcat started on port(s): 8080 (http)
...Started HelloWorldController in 5.806 seconds (JVM running for 10.606)

Spring Boot 第二种启动方式

​ 项目中肯定不止一个 Controller,我们当然希望项目启动时将所有的 Controller 全部加载进来,这种情况又

该如何配置呢?比如此时有两个 Controller,都需要被执行。

​ HelloWorldController.java

package com.springboot.controller;

import org.springframework.boot.SpringApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
public class HelloWorldController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }

    @RequestMapping("/getMap")
    public Map<String, Object> getMap() {
        Map<String, Object> resultMap = new HashMap<>();
        resultMap.put("code", "200");
        resultMap.put("msg", "成功");
        return resultMap;
    }

}

​ IndexController.java

package com.springboot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {

    @RequestMapping("/index")
    public String index() {
        return "index";
    }

}

​ App.java

package com.springboot.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;

// 扫描指定包下的服务
@ComponentScan("com.springboot.controller")
// 表示所扫描到的服务
@EnableAutoConfiguration
public class App {

    // 项目中不需要有多个 main 方法只需要有一个入口就可以了
    public static void main(String[] args) {
        // 主函数运行 springboot 项目
        SpringApplication.run(App.class, args);
    }

}

​ 删除其他服务的主函数 main(),只保留一个即可。

​ 并且删除其他服务的 @EnableAutoConfiguration 注解,只在主函数服务中添加。

​ 通过 @ComponentScan 注解扫描你需要的服务。

​ 启动 App.java,其他两个服务也可以访问到了。

Spring Boot 第三种启动方式

​ 开发中,我们经常使用以下3个注解注解 main 类。

각각 @Configuration, @EnableAutoConfiguration, @ComponentScan. 이 노트는 일반적으로하기 때문에

사용하기 때문에, 봄 부팅 통일 주석을 제공 할 것입니다 @SpringBootApplication.

그 참고 : @SpringBootApplication는 같은 레벨 패키지에서 스캔합니다.

다른 패키지를 사용할 수 있습니다에서 @SpringBootApplication조합 @EnableAutoConfiguration,

@ComponentScan주사 주입.

상기 @ComponentScan유용 주사 콩 주석을 통해 패킷을 포함하는 특정의 주석을 지정할 수

@Component, @Service, @Repository, @Controller, @Entity등이 자동으로 봄 콩으로 등록되어 있습니다.

App.java

package com.springboot.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

// 相当于 @ComponentScan("com.springboot.app") 只扫描同级包下
// 解决办法提升当前App类的包范围("com.springboot"),或者结合 @ComponentScan使用
@SpringBootApplication
// 扫描指定包下的服务
@ComponentScan("com.springboot.controller")
public class App {

    // 项目中不需要有多个 main 方法只需要有一个入口就可以了
    public static void main(String[] args) {
        // 主函数运行 springboot 项目
        SpringApplication.run(App.class, args);
    }

}

추천

출처www.cnblogs.com/5Dylan/p/springboot-abc.html