Spring Boot 的介绍与搭建

一,什么是Spring Boot?

随着动态语言的流行(Ruby, Groovy, Scala, Node.js), Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。在上述环境下, Spring Boot应运而生。它使用“习惯优于配置”(项目中存在大量的配置, ,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行iar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

二,Spring Boot的优缺点

优点.

(1)快速构建项目;

(2)对主流开发框架的无配置集成;

(3)项目可独立运行,无须外部依赖Servlet容器;

(4)提供运行时的应用监控;

(5)极大地提高了开发、部署效率;

(6)与云计算的天然集成。

缺点

(1)书籍文档较少且不够深入,这是直接促使我写这本书的原因;

(2)如果你不认同Spring框架,这也许是它的缺点,但建议你一定要使用Spring框架。

三,快速入门

1,设置spring boot的parent

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.2.RELEASE</version>
	</parent>

说明:Spring boot的项目必须要将parent设置为spring boot的parent,该parent包含了大量默认的配置,大大简化了我们的开发。

2,导入spring boot的web支持

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

3,添加Spring boot的插件

<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>

4,编写第一个Spring Boot的应用

@Controller
@SpringBootApplication
@Configuration
public class HelloApplication {
    
    @RequestMapping("hello")
    @ResponseBody
    public String hello(){
        return "hello world!";
    }
    
    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }

}

代码说明:

1、@SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置。;

2、@Configuration:这是一个配置Spring的配置类;

3、@Controller:标明这是一个SpringMVC的Controller控制器;

4、main方法:在main方法中启动一个应用,即:这个应用的入口;

5,启动应用

在Spring Boot项目中,启动的方式有两种,一种是直接run Java Application另外一种是通过Spring Boot的Maven插件运行。

第一种:

第二种:

启动效果:

看到如下信息就说明启动成功了:

INFO 6188 --- [           main] c.i.springboot.demo.HelloApplication     : Started HelloApplication in 3.281 seconds (JVM running for 3.601)

​​​​​​​测试

打开浏览器,输入地址:

效果:

Spring Boot的核心

入口类和@SpringBootApplication

Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的Java应用程序的入口方法。

@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解:

 

该注解主要组合了以下注解:

@SpringBootConfiguration:这是Spring Boot项目的配置注解,这也是一个组合注解:
在Spring Boot项目中推荐使用@ SpringBootConfiguration替代@Configuration

@EnableAutoConfiguration:启用自动配置,该注解会使Spring Boot根据项目中依赖的jar包自动配置项目的配置项:

如:我们添加了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,Spring Boot就会自动配置tomcat和SpringMVC
​​​@ComponentScan:默认扫描@SpringBootApplication所在类的同级目录以及它的子目录。

六,关闭自动配置

通过上述,我们得知,Spring Boot会根据项目中的jar包依赖,自动做出配置,Spring Boot支持的自动配置如下(非常多):

 

如果我们不需要Spring Boot自动配置,想关闭某一项的自动配置,该如何设置呢?

比如:我们不想自动配置Redis,想手动配置。

 

当然了,其他的配置就类似了。

​​​​​​​七,自定义Banner

启动Spring Boot项目后会看到这样的图案:

 

这个图片其实是可以自定义的:

  1. 打开网站:http://patorjk.com/software/taag/#p=display&h=3&v=3&f=4Max&t=itcast%20Spring%20Boo
  2. 拷贝生成的字符到一个文本文件中,并且将该文件命名为banner.txt
  3. 将banner.txt拷贝到项目的resources目录中,重新启动即可

如果不想看到任何的banner,也是可以将其关闭的:

 

八,全局配置文件

Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到resources下。

  1. 修改tomcat的端口为8088

    重新启动应用,查看效果:
  2. 修改进入DispatcherServlet的规则为:*.html



测试:

更多的配置:

​​​​​​​Starter pom

Spring Boot为我们提供了简化企业级开发绝大多数场景的starte pom,只要使用了应用场景所需要的starter pom,相关的技术配置将会消除,就可以得到Spring Boot为我们提供的自动配置的Bean.

 

 

 

 

​​​​​​​Xml 配置文件

​​​​​​​​​​​​​​日志

Spring Boot对各种日志框架都做了支持,我们可以通过配置来修改默认的日志的配置:

 

#设置日志级别

logging.level.org.springframework=DEBUG

 

格式:

logging.level.*# Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`

    1. Spring Boot的自动配置的原理

Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器。

      1. Maven下载源码

通过 dependency:sources 该命令可以下载该项目中所有的依赖的包的源码。

      1. 源码分析

org.springframework.boot.SpringApplication:

 

 

org.springframework.core.io.support.SpringFactoriesLoader:

 

由此可见,读取该配置文件来加载内容。

猜你喜欢

转载自blog.csdn.net/echizao1839/article/details/81807108