美文网首页
2018-03-04-0.springboot帮我们做了哪些事?

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

作者: 简单coder | 来源:发表于2018-03-04 11:30 被阅读348次

    (前文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都是,具体内容以后如果用到了会细讲

    相关文章

      网友评论

          本文标题:2018-03-04-0.springboot帮我们做了哪些事?

          本文链接:https://www.haomeiwen.com/subject/jxuffftx.html