2018-03-04-0.springboot帮我们做了哪些事?

2018-03-04  本文已影响348人  简单coder

(前文PS:家里win电脑没有电脑桌,用的小桌子,手高键盘低,打字贼类o(╯□╰)o)

都说springboot方便,相比于我们在spring时代中做的那么多的麻烦事:
1.spring1.x,我们在大量的用xml配置文件,配置对象,扫描,驱动,数据源等等
2.spring2.x,注解的产生,帮助我们便利了很多业务属性的配置,但是,大量的资源文件,比如jdbc.properties等资源文件读取,mybatis工厂对象注入,注解驱动,事务驱动等等,web.xml启动时监听spring配置文件,springmvc等。
3.spring3.x,java方式配置文件,用java类去配置文件

以上几点,虽然随着spring的发展,代码的编写越来越方便,但是我们发现,每一个项目有太多太多的重复性代码需要去c+v
能不能有一个,我们大家约定俗成的,由框架帮我们自动生成这些配置的方式呢?
基于这一点,spring-boot诞生了

1. Spring Boot

1.1. 什么是Spring Boot

1.2. Spring Boot的优缺点

这是某书上的截图,说来说去,spring boot的精华就是那一句:习惯优于配置

接下来,快速入门一下spring boot项目

现在的项目启动基本都是直接去一个网站下载springboot基础项目 http://spring.start.io

直接打开,或者用maven导入也行,打开后要等待一下maven的依赖导入,如果默认的maven依赖话下载会比较慢,这里推荐一个较快的国内maven源:

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>

在maven conf->setting.xml文件中,找到mirrors复制进去即可

maven下载完成后如下



pom依赖如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.syl</groupId>
    <artifactId>springboot1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot1</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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


</project>

我添加了web模块和actuator模块,这时候别急,不用去找什么springmvc,spring,aop什么的依赖,我们去maven依赖树看一下:


springboot的配置都是通过注解形式产生,@SpringBootApplication是一个组合注解,里面包括了多种注解,主函数中用一行代码

SpringApplication.run(Springboot1Application.class, args);

spring-boot-starter-web依赖下,依赖了我们各种以前需要的依赖,我们根本不需要依赖任何东西,只需导入springweb依赖即可,那我们需要做的各种初始化依赖

Spring Boot项目中推荐使用@ SpringBootConfiguration替代@Configuration

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

如:我们添加了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,Spring Boot就会自动配置tomcat和SpringMVC

注意!@ComponentScan:默认扫描@SpringBootApplication所在类的同级目录以及它的子目录。

这是spring所有配置加载的入口,我们现在暂时不用管,直接运行主函数,会发现:



程序运行到此说明已经成功,网页访问以下8080网址,发现

程序运行起来了,因为springboot将tomcat作为一个插件引入项目中,而不是像以前一样,将整个项目打包到tomcat->webapp中,所以可以直接跑.


springboot帮我们做了很多约定俗称的功能,比如解决中文乱码什么的,这些都是在spring各个依赖的autoconfig*类中执行,这个是springboot下一个autoconfig依赖里面的:



就是上面的这个依赖,里面包含了各种自动的配置,什么aop啦,context啦,反正很多,只要是autoConfiguration结尾的class都是,具体内容以后如果用到了会细讲

上一篇下一篇

猜你喜欢

热点阅读