首页 > 作文

springboot介绍项目(springboot自动配置原理)

更新时间:2023-04-05 11:58:05 阅读: 评论:0

一、代码实现

1. 创建maven工程,普通的java工程

2. 添加springboot的起步依赖

springboot要求,项目要继承springboot的起步依赖
spring-boot-starter-parent

     <parent>         <groupid>org.springframework.boot</groupid>户外领队;         <artifactid>spring-boot-starter-parent</artifactid>         <version>2.0.1.relea</version>     </parent>

springboot要集成springmvc进行controller的开发,所以项目要导入web的启动依赖

     <dependencies>         <dependency>             <groupid>org.springframework.boot</groupid>             <artifactid>spring-boot-starter-web</artifactid>         </dependency>     </dependencies>

3. 编写springboot引导类

引导类必须放在与controller等包同级目录

 package com.xiaojian; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication;  @springbootapplication public class application {     public static void main(string[] args) {         springapplication.run(application.class);     }  }

4. 编写controller类

 package com.xiaojian.controller; ​ import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.responbody; ​ @controller public class quickcontroller { ​     @requestmapping("/quick")     @responbody     public string quick(){         return "hel开讲了罗志祥lo springboot";     } }

@responbody 必须加上。

5. 测试

浏览器访问 : localhost:8080/quick 显示: hello springboot

二、入门解析

1.springboot代码解析

所有springboog工程中,都要在pom.xml添加父工程依赖(spring-boot-starter-parent),后面进行源码分析以功能为单位,如需要web功能在浏览器进行访问,秩序添加依赖(spring-boot-starter-web)@springbootapplication,声明该类是springboot的引导类 run方法运行springboot引导类,参数是引导类的字节码对象
 @springbootapplication public class application {     public static void main(string[] args) {         springapplication.run(application.class);     } }

2.springboot工程热部署(好东西啊)

我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在pom.xml中添加如下配置就可以实现这样的功能,我们称之为热部署

 <!--热部署配置--> <dependency>     <groupid>org.springframework.boot</groupid>     <artifactid>spring-boot-devtools</artifactid> </dependency>

ps:idea进行springboot进行热部署失败的解决方案

tting -> compiler -> build project automatically然后 shift+ctrl+alt+/,选择registry,在列表中找到 compiler.automatically.allow.when.app.running 打钩 完成

三、原理分析

1. 起步依赖原理分析(查看源码)

分析spring-boot-starter-parent spring-boot-starter-parent中也有父依赖spring-boot-starter-dependencies,从中可以看到一部分坐标的版本、依赖管理、插件管理已经定义好,所以我们的springboot工程继承spring-boot-starter-parent后已经具备版本锁定等配置了。 所以起步依赖的作用就是进行依赖的传递。分析spring-boot-starter-web spring-boot-starter-web就是将web开发要使用的spring-web、spring-webmvc等坐标进行了“打包”,这样我们的工程只要引入spring-boot-starter-web起步依赖的坐标就可以进行web开发了,同样体现美林东苑了依赖传递的作用。在以后需要添加的功能也是同理

2. 自动配置

@springbootapplication 注解 相当于配置三个注解

 @springbootconfiguration // 相当于 @configuration ,配置spring容器(@bean,注册bean对象,标注在返回某个实例的方法) @enableautoconfiguration // 自tplink无线路由器ip动配置 @componentscan( // 组件扫描,扫描与引导类同级目录包下的bean     excludefilters = {@filter(     type = filtertype.custom,     class = {typeexcludefilter.class} ), @filter(     type = filtertype.custom,     class = {autoconfigurationexcludefilter.class} )} )

接口enableautoconfiguration(重要)

@autoconfigurationpackage

将主配置类(@springbootapplication标注的类)同级目录下的所在包,及下面所有子包里面的所有组件扫描到spring容器

@import注解

通过导入的方式实现把实例加入springioc容器中

autoconfigurationimportlector:

导入哪些组件的选择器

将所有需要导入的组件以全类名的方式返回;这些组件被添加到容器中。

会给容器中导入非常多的自动配置类(xxxautoconfiguration);

就是给容器中导入这个场景需要的所有组件,并配置好这些组件。

在该类中获取全类名的方法中,调用
getcandidateconfigurations( … )

loadfactorynames( … ) ,使用类加载器加载目标位置的资源(也就是需要导入的组件全类名),并存入properties中返回

自动导入组件全过程图解:

springboot 在启动的时候,从springboot的autoconfigure包的类路径下的meta-inf/spring.factories中获取enableautoconfiguration指定的值(组件全类名),将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作。

应接不暇的反义词

以前我们需要自己配置的东西,自动配置类帮我们做了(对比ssm中的各大配置属性)

四、springboot项目目录结构

resources文件夹

static:保存所有静态资源,js,css,images;templates:保存所有的模板页面;(spring boot默认jar包使用嵌入式的tomcat,默认不支持jsp页面),可以使用模板引擎(freemarker,thymeleaf)application.properties:spring boot应用的配置文件;springboot自动配置原理

本文发布于:2023-04-05 11:58:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1715ca898147650b479b278ba9d437ec.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:springboot介绍项目(springboot自动配置原理).doc

本文 PDF 下载地址:springboot介绍项目(springboot自动配置原理).pdf

上一篇:复硝酚钠作用
下一篇:返回列表
标签:组件   容器   工程   注解
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图