springboot详细讲解_Springboot项目

springboot详细讲解_Springboot项目系列文章目录一、Spring和Springboot的区别及其注意事项什么?二、忽略文件技巧,这样就可以减少很多不必要的文件生成三、SpringBootParent讲解四、stater的介绍五、引导类的介绍六、Springboot内置tomcat(辅助功能必看)可以更改服务提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

目录

一、Spring和Springboot的区别及其注意事项什么?

         二、忽略文件技巧,这样就可以减少很多不必要的文件生成

三、SpringBoot  Parent讲解

 四、stater的介绍

五、引导类的介绍

六、Springboot内置tomcat(辅助功能必看)可以更改服务


一、Spring和Springboot的区别及其注意事项什么?

springboot详细讲解_Springboot项目

springboot详细讲解_Springboot项目

springboot详细讲解_Springboot项目

二、忽略文件技巧,这样就可以减少很多不必要的文件生成

等弟弟

三、SpringBoot  Parent讲解

springboot详细讲解_Springboot项目springboot详细讲解_Springboot项目

小结:

  1. 开发SpringBoot程序要继承spring-boot-starter-parent
  2. spring-boot-starter-parent中定义了若干个依赖管理
  3. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
  4. 继承parent的形式也可以采用引入依赖的形式实现效果

按住Ctrl点击pom.xml中的spring-boot-starter-dependencies,跳转到了spring-boot-starter-dependencies的pom.xml,xml配置如下(只摘抄了部分重点配置):

<properties>
  	<activemq.version>5.15.3</activemq.version>
  	<antlr2.version>2.7.7</antlr2.version>
  	<appengine-sdk.version>1.9.63</appengine-sdk.version>
  	<artemis.version>2.4.0</artemis.version>
  	<aspectj.version>1.8.13</aspectj.version>
  	<assertj.version>3.9.1</assertj.version>
  	<atomikos.version>4.0.6</atomikos.version>
  	<bitronix.version>2.1.4</bitronix.version>
  	<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
  	<byte-buddy.version>1.7.11</byte-buddy.version>
  	... ... ...
</properties>
<dependencyManagement>
  	<dependencies>
      	<dependency>
        	<groupId>org.springframework.boot</groupId>
        	<artifactId>spring-boot</artifactId>
        	<version>2.0.1.RELEASE</version>
      	</dependency>
      	<dependency>
        	<groupId>org.springframework.boot</groupId>
        	<artifactId>spring-boot-test</artifactId>
        	<version>2.0.1.RELEASE</version>
      	</dependency>
      	... ... ...
	</dependencies>
</dependencyManagement>
<build>
  	<pluginManagement>
    	<plugins>
      		<plugin>
        		<groupId>org.jetbrains.kotlin</groupId>
        		<artifactId>kotlin-maven-plugin</artifactId>
        		<version>${kotlin.version}</version>
      		</plugin>
      		<plugin>
        		<groupId>org.jooq</groupId>
        		<artifactId>jooq-codegen-maven</artifactId>
        		<version>${jooq.version}</version>
      		</plugin>
      		<plugin>
        		<groupId>org.springframework.boot</groupId>
        		<artifactId>spring-boot-maven-plugin</artifactId>
        		<version>2.0.1.RELEASE</version>
      		</plugin>
          	... ... ...
    	</plugins>
  	</pluginManagement>
</build>

 四、stater的介绍

 springboot详细讲解_Springboot项目


  • starter

        SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的

  • parent

        所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
spring-boot-starter-parent各版本间存在着诸多坐标版本不同

  • 实际开发

        使用任意坐标时,仅书写GAV(groupId, artifactId, version)中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V

小结:

  1. 开发SpringBoot程序需要导入坐标时通常导入对应的starter
  2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
  3. 使用starter可以实现快速配置的效果,达到简化配置的目的

五、引导类的介绍

  • 启动方式
@SpringBootApplication
public class Springboot0101QuickstartApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext ctx = SpringApplication.run(Springboot0101QuickstartApplication.class, args);
        //获取bean对象
        BookController bean = ctx.getBean(BookController.class);
        System.out.println("bean======>" + bean);
    }
}
  • SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
  • SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

小结:

  1. SpringBoot工程提供引导类用来启动程序
  2. SpringBoot工程启动后创建并初始化Spring容器

六、Springboot内置tomcat(辅助功能必看)可以更改服务

springboot详细讲解_Springboot项目

  • 使用maven依赖管理变更起步依赖项
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--web 起步依赖环境中,排除 Tomcat 起步依赖 -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 添加 Jetty 起步依赖,版本由 SpringBoot 的 starter 控制 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

  • Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty
  • 内置服务器

        tomcat(默认) apache出品,粉丝多,应用面广,负载了若干较重的组件

        jetty 更轻量级,负载性能远不及tomcat

        undertow undertow,负载性能勉强跑赢tomcat

小结:

  1. 内嵌Tomcat服务器是SpringBoot辅助功能之一
  2. 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
  3. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190599.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Struts2拦截器-abstractInterceptor

    Struts2拦截器-abstractInterceptor通过继承AbstractInterceptor类,重写intercept方法,实现拦截器;需要在Struts2中初始化需要放行的action名称具体流程:1.新建Struts2项目(MyEclipse自动配置Struts2环境)2.新建页面(index.jsp)3.新建页面(login.jsp)4.新建实体类(UserInfo)5.新建action类(B…

    2022年5月15日
    39
  • 版权文字:Power by DedeCms 如何去除?[通俗易懂]

    版权文字:Power by DedeCms 如何去除?[通俗易懂]dedeCMS系统中的版权声明信息中含有“PowerbyDedeCms”字样,如何去除?dedeCMS近期的新版本至2013-6-7更新包以来,不管新版还是旧版更新补丁包,更新后网站页底都会出现powerbydedecms。*一、powerbydedecms什么意思?在我们上网的时候,会见到页面页底很多带powerbydedecms的网站,powerbydede…

    2022年7月13日
    16
  • 如何理解掩码、反掩码、通配符「建议收藏」

    如何理解掩码、反掩码、通配符「建议收藏」反掩码、掩码和通配符的区别一、掩码在掩码中,1表示精确匹配,0表示随机1和0,永远不交叉;1永远在左边,0永远在右边;在配置IP地址以及路由的时候,会使用掩码;二、反掩码在反掩码中,1表示随机,0表示精确匹配0和1,永远不交叉;0永远在左边,1永远在右边;在路由协议的配置中,通过network命令进行网段宣告时,会使用三、通配符在统配符中,1表示随机,0表示精确匹配0和1的位置,没有任何的固定限制可以连续,可以交叉在ACL中,使用的通配符通配符掩码表CIDR子网掩码反掩

    2022年7月19日
    11
  • 给女朋友讲 : Java线程池的内部原理

    给女朋友讲 : Java线程池的内部原理餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”

    2022年5月12日
    52
  • mysql sql常用语句大全「建议收藏」

    mysql sql常用语句大全「建议收藏」一、常用操作数据库的命令1.showdatabases;查看所有的数据库2.createdatabasetest;创建一个叫test的数据库3.dropdatabasetest;删除一个叫test的数据库4.usetest;选中库,在建表之前必须要选择数据库5.showtables;在选中的数据库之中查看所有的表6.createtable表名(字段1…

    2022年4月29日
    55
  • php502bad gateway,PHP表单提交后出现502 bad gateway解决办法

    php502bad gateway,PHP表单提交后出现502 bad gateway解决办法搜索热词《PHP表单提交后出现502badgateway解决办法》要点:本文介绍了PHP表单提交后出现502badgateway解决办法,希望对您有用。如果有疑问,可以联系我们。有时侯,提交表单后,服务器出现“502badgateway”错误,这种情况一般都是大的文章内容。网站的解决办法有:1、修改PHP.INI中的memory_limit,加大到64M,但现在默认的PHP配置就是12…

    2022年6月18日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号