美文网首页
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帮我们做了哪些事?

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

  • 办公室哲学(109)|工作的出发点

    我们的重点不是做了哪些事,还要做哪些事,而是怎样做对于最终的结果有帮助,做哪些事会让结果更好。这是我们工作的出发点...

  • 今天做了哪些事

    今天,打扫了房间里的卫生,还陪爱人聊了一上午,给她唱了很多歌,我还有美妙的歌声,她很高兴,我也很高兴,在群里...

  • 日本设计做了哪些我们没做的事?

    在不久前日本《读卖新闻》做的一项调查中显示,日本和中国分别有56%和44%不喜欢对方,但不喜欢并不能抹杀对方的成就...

  • 2020-09-06 周日 晴

    反省 今天说了哪些不该说的话 做了哪些不该做的事

  • 过年我做了哪些事?

    一个寒假就这样嗖的一下过完了,感觉自己刚过完年就开学了。那么,大概回想一下自己的假期,我做了哪些事呢? 1.练习科...

  • 开学我做了哪些事

    9月1日我们如期开学了,一解疫情带来的阴霾,又能和小伙伴们一起学习嬉戏,大概就是童年生活中我最期待的。 开学后我就...

  • 226/1000 灵魂五问

    今天周五,这一周在个人成长、工作方面做了哪些进步呢? 我告诉团队,睡前反思。自己做了哪些? 001 一天做了哪些事...

  • CPU性能分析--上下文切换

    内容提要 CPU上下文切换都做了哪些事? CPU上下文切换都有哪些场景? 系统调用上下文切换都做了哪些事? 进程上...

  • 周末,来个复盘

    这周我做了哪些事? 01主持了“每日一学”的开营仪式。 02参与了习惯营的打卡。 03提供一篇碎碎念给“妈咪打怪帮...

网友评论

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

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