봄 부팅 2.1.6版
시간은 모든 프로그래머는 내가 생각할 수있는 라인에있는 모든 당신을 통해 현대적인 단계에서 자바 프로그래머가 더 배울 때의 감각을 가지고 있어야
무엇. 인상적인 그들은 기술을 업그레이드하는 방법에 대한 걱정없이, 응용 프로그램에서 오랜 시간을 유지할 수 있으며, 프레임의 백 엔드가 안정적입니다. 그러나 유사한
SSH, SSM은 이러한 프레임 워크는 너무 오래, 사람들은 그 자리에 더 우아하고 간단한 프레임 워크를 사용하는 기다린를 사용할 수 없습니다 SpringBoot
학생들.
봄 부팅 스프링 프레임 워크는 스프링 애플리케이션의 생성과 발전을 단순화하는 데 사용되는 새로운 가족입니다. 스프링을 사용하여
부팅은 매우 쉽게 빠르게 코딩이 간단하게 할 수 있습니다 스프링 프레임 워크, 간단한 구성 변경에 기반 응용 프로그램을 구축 할 수 있습니다, 변경, 배포 간단, 모니터
단순화. 봄 부팅 단순화 할 수 있기 때문에, 개발자는 업계에서 매우 빨리, 너무 많은 관심이 될 수 있습니다. 현재 중국 봄 부팅에
추세를 따르는 것은 봄보다 더 많은되었다.
학습 조건
SpringBoot 프레임 스프링 프레임 워크는 프레임을 기반으로하는 응용 프로그램입니다, 프레임 스프링 프레임 워크 업그레이드로 최적화를 수행
새로운 프레임 워크하십시오. 두 SpringBoot 스프링 프레임 워크는 프레임의 상단에 내장, 그래서 당신이 SpringBoot- 기꺼이 그렇게 배우고 싶어한다
스프링 프레임 워크를 마스터 감안할.
소개
봄 부팅 개요
스프링 프레임 워크는 강력하지만, 심지어 아주 간단한 프로젝트, 우리는 많은 것들을 구성해야합니다. 그래서 봄 부트 상자가
그 역할은 우리가 자동으로 구성하기 위해 단순히, 랙. 봄 부팅 코어 프레임 워크는 자동으로, 한 해당 항아리 패키지가 같이 구성되어 있습니다
봄은 우리가 자동으로 구성 도움이됩니다. 기본 구성이 수요를 충족하지 않을 경우, 우리는 또한 우리 자신의 구성을 사용하여 자동 구성 클래스를 대체 할 수 있습니다.
봄 부팅 봄 향상,하지만 빠른 개발을위한 스프링 프레임 워크를 사용하지 않습니다. == 봄 부팅 빠르게 개발 할 수 있도록 설계되었습니다 ==
스프링 프레임 워크 구조 == == 속도
사용 봄 부팅이 쉽게 별도의 실행 (실행 항아리, 임베디드 서블릿 컨테이너)를 만들 수 있습니다, 엔트리 레벨의 생산 기반 스프링 프레임 워크
현재, 우리는 봄 부팅도 약간 봄 구성 만이 필요 없습니다 사용합니다. 또한, 봄 부팅은 내장 웹 서비스를 통합
우리가 신속하게 엔터프라이즈 급 애플리케이션을 구축 할 수 있도록 시스템 모니터링 및 다른 많은 유용한 기능.
== 마이크로 서비스는 미래의 추세는, 봄 부팅 프로젝트는 마이크로 서비스 개발의 초석이다. ==
우리가 키 포인트 SpringBoot 내용 왜 이러한 전망이다.
봄 부트 핵심 기능
독립적으로 프로젝트의 실행하는 봄
봄 부팅 항아리는 자바 -jar xxx.jar으로, 패킷 형태로 직접 실행할 수 있습니다
장점은 다음과 같습니다 서버 자원을 절약
임베디드 톰캣과 부두 컨테이너
봄 부팅이 포함 된 톰캣, 부두를 선택할 수 있습니다, 그래서 우리는 전쟁의 형태로 프로젝트 패키지를 배포 할 필요가 없습니다.
스타터 리딩은 구성 메이븐을 단순화
예를 들어, 자동으로 통합 스프링 부팅 스타터 웹에 도입
스프링 부팅 스타터 부모 시작은 일반적 패키지에서 사용하는 사용 후, 관련 메이븐 의존성을 제공하는 데 사용되는, 특별한이다
라이 버전 레이블을 절약 할 수 있습니다.
자동 구성 봄
봄 부팅이 클래스 패스 항아리 패키지를 기반으로합니다, 클래스가 자동으로 콩 가방 카테고리를 항아리하도록 구성이 크게 사용하는 우리의 분포를 감소시킬 것이다
홈. 물론 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 项目
创建项目
编写 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);
}
}