SpringBoot01

一、SpringBoot项目中常见的依赖

1.1、spring-boot-starter-parent

        这个是SpringBoot项目必须导入的依赖,这个父模块内部定义了springboot整合各个技术的依赖版本,降低版本的冲突。

<parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.6.7</version>
</parent>

1.2、spring-boot-starter-web和spring-boot-starter-test 

        spring-boot-starter-web是springboot项目web开发必须的依赖,spring-boot-starter-test是单元测试的依赖

<dependencies><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></dependency>
</dependencies>

1.3、spring-boot-maven-plugin 

        Springboot项目使用maven进行cleanpackageinstall等操作时必须添加的依赖,否则会在执行上面的操作时报错。 

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

二、 使用配置文件切换环境

2.1、application.properties是默认配置文件

        我们可以使用配置文件来对springboot项目进行环境切换,启动程序时如果没有指定使用哪个profile配置,那么就会默认使用application.properties配置文件,这是默认配置文件。

        要想使用配置文件切换环境,配置文件必须是application-开头。

        现在以application.propertiesapplication-develop.propertiesapplication-production.properties为例进行操作

        application.properties端口号为:8080

        application-develop.properties端口号为:8081

        application-production.properties端口号为:8082

        

         目前在application.properties只设置端口号为8080,不指定使用哪个profile配置,并启动程序。结果如下:

        可以看到没有指定使用哪个profile配置,那么就会默认使用application.properties配置文件,所以端口为8080

2.2、指定profile配置文件

        在application.properties配置文件中可以指定profile配置文件。通过在application.properties中加上spring.profiles.active=production即可,表示使用application-production.properties配置文件。

   

 启动程序。结果如下:

        可以看到可以通过在application.properties默认配置文件中,加上spring.profiles.active=production来指定配置文件。指定配置文件的前提是配置文件是以application-开头

2.3、通过Idea指定配置文件

2.3.1、Edit Configuration

                选中要更改的springboot项目,并选择Edit Configuration

        

2.3.2、Active profiles中指定配置文件

        可以在Active profiles中指定配置文件,如下图指定application-develop.properties配置文件,并且使用这种方式比2.2中通过配置文件指定profile优先级要高。

 启动程序。结果如下:

        可以看到2.2中指定的是application-production.properties,再不改动2.2中配置文件的情况下,在2.3中指定application-develop.properties,最后从结果中可以看到运行的是application-develop.properties,所以在Idea中指定配置文件的优先级是高于通过application.properties配置文件。

2.4、配置文件的优先级

        Springboot项目常见的配置文件有:properties、yml、yaml

        配置文件优先级: properties > yml > yaml 

2.5、配置文件没有被springboot识别怎么办 (配置文件成粉红色)

        有时候配置文件会变成粉红色,没有被SpringBoot项目识别,如下图。

        如果配置文件本身没有问题的情况下,实际上是不影响程序的运行。但是要想解决的话,方式如下:

三、SpringBoot内置了Tomcat服务器

        Spring Boot 不再需要将应用部署到 Tomcat 服务器就能运行,这是因为它内嵌了 Tomcat 服务器。

        传统 web 程序和Spring Boot web 程序的区别:

        传统 web 程序,打 war 包,部署至 Tomcat,是 Tomcat 中运行了 Spring 程序 。

        Spring Boot web 程序,打 jar 包,启动内嵌的 Tomcat,是 Spring 程序驱动了 Tomcat      

        优点:控制力更强,像 Filter 等都可以使用 Spring 依赖注入等功能      

        优点:部署也更为方便,不需要单独安装 tomcat,有 java 运行环境即可      

        缺点:jar 包不支持 jsp

    

        将web 容器切换成jetty        

四、@ServletComponentScan 就可以将 Filter、Servlet 等纳入 Spring 管理 

  启动引导类中的代码:

 在启动引导类上加了  @ServletComponentScan  注解  

package com.itboy;import com.itboy.Import.MyImportSeletor;
import org.example.config.BrandAutoConfiguration;
import org.example.config.UserAutoConfiguration;
import org.example.pojo.Brand;
import org.example.pojo.User;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Import;/*** * */
@SpringBootApplication
@ServletComponentScan //默认扫描引导类所在包及其子包下的servlet组件
public class SpringBootPlusApplication {public static void main(String[] args) {ConfigurableApplicationContext app = SpringApplication.run(SpringBootPlusApplication.class, args);}
}

对应的Filter

package com.itboy.filter;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;@WebFilter("/*")
public class FilterDemo implements Filter {public void init(FilterConfig config) throws ServletException {}public void destroy() {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {System.out.println("doFilter运行了..........");chain.doFilter(request, response);}
}

通过页面访问会发现Filter执行了

        说明在启动引导类上添加 @ServletComponentScan  注解就可以将 Filter、Servlet 等纳入 Spring 管理 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转未来:Sui游戏峰会将于3月19日亮相GDC

Sui将在今年三月份的旧金山游戏开发者大会&#xff08;Game Developer Conference, GDC&#xff09;上推出其首个重大游戏活动&#xff0c;展示其为独立游戏到3A游戏提供动力&#xff0c;并为游戏开发人员开启吸引新玩家参与的能力。“Play Beyond&#xff1a;Sui游戏峰会”&am…

XSS靶场练习(pikachu和dvwa)

Pikachu靶场xss练习 反射型xss(get) 输入123发现被直接插入到了html中&#xff0c;而且输入框有字符长度限制 在url中构造payload:<script>alert(123)</script> 反射型xss(post) 查看源码发现登录界面没有任何机会&#xff1b;登录后输入123发现和xss(get)写入位…

css display 左右对齐 技巧

.list_number{ display: flex; } .list_name_number{ width:100px; } //左边固定width .list_name_type{ //右边给flex:2 自动撑开 flex:2; }

Flink 集成 Debezium Confluent Avro ( format=debezium-avro-confluent )

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维…

公司内网虚拟机中穿透服务器Coturn的搭建

1. 写在前面 coturn服务器的搭建文章已经非常多&#xff0c;但是对于对linux不熟悉的人来说排查错误的文章不多&#xff0c;此篇文章把我这次搭建过程以及如何排查问题做一个梳理我这里是在oracle vm虚拟机中搭建安装的ubuntu&#xff0c;通过H3C路由器映射到外网以下介绍我只…

【Docker】实战案例 - CI/CD

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; CI/CD 持续集成(Continuous integration) 是一种软件开发实践&#xff0c;每次集成都通过自动化的构建&#xff08;包括编译&#xff0c;发…

Java项目:SSM框架基于spring+springmvc+mybatis实现的心理预约咨询管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm823基于SSM框架的心理预约咨询管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&am…

车用OS赛道研究:10%渗透率拐点,中国本土供应商突围策略

车用OS赛道当前正站在发展节点上&#xff0c;国内玩家也正基于现实情况进行突围。 智驾、座舱域控渗透率均处于快速增长期的拐点&#xff08;以10%渗透率界&#xff09;。高工智能汽车研究院监测数据显示&#xff0c;2023年1-9月&#xff0c;国内&#xff08;不含进出口&#…

【软件测试】学习笔记-构建并执行 JMeter 脚本的正确姿势

有些团队在组建之初往往并没有配置性能测试人员&#xff0c;后来随着公司业务体量的上升&#xff0c;开始有了性能测试的需求&#xff0c;很多公司为了节约成本会在业务测试团队里选一些技术能力不错的同学进行性能测试&#xff0c;但这些同学也是摸着石头过河。他们会去网上寻…

C++实用教程(四):面向对象核心多态 笔记

推荐B站视频&#xff1a;C现代实用教程(四):面向对象核心多态_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV15v4y1M7fF/?spm_id_from333.999.0.0&vd_sourcea934d7fc6f47698a29dac90a922ba5a3 本项目通用的tasks.json文件和launch.json tasks.json {"versi…

让B端管理软件既美观又实用的解决方案来了

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 让B端管理软件既美观又实用的解决方案来了 在当今数字化时代&#xff0c;B端管理软件已…

安泰ATA-4014高压功率放大器在超声马达驱动电路设计中的应用

本文将与大家分享&#xff0c;ATA-4014高压功率放大器在超声马达驱动电路设计和制作中的应用&#xff0c;希望能对各位工程师有所帮助与启发。 1引言 超声波马达又称超声电机(ultrasonicmotor&#xff0c;简称USM)20世纪80年代才诞生的一种全新概念电机种类.超声电机采用与传统…

华为AC+FIT AP组网配置

AC配置 vlan batch 100 to 101dhcp enableip pool apgateway-list 192.168.100.254 network 192.168.100.0 mask 255.255.255.0 interface Vlanif100ip address 192.168.100.254 255.255.255.0dhcp select globalinterface GigabitEthernet0/0/1port link-type trunkport trun…

马尔可夫预测(Python)

马尔科夫链&#xff08;Markov Chains&#xff09; 从一个例子入手&#xff1a;假设某餐厅有A&#xff0c;B&#xff0c;C三种套餐供应&#xff0c;每天只会是这三种中的一种&#xff0c;而具体是哪一种&#xff0c;仅取决于昨天供应的哪一种&#xff0c;换言之&#…

2024年会是大牛市吗?我有500万想找个证券公司开融资融券账户,哪家券商两融利率最低?

2024年是否会迎来大牛市&#xff0c;这是一个颇具争议的话题。然而&#xff0c;无论市场走势如何&#xff0c;对于有500万的投资者来说&#xff0c;开立一个融资融券账户确实是一个不错的选择。在选择券商时&#xff0c;除了考虑两融利率外&#xff0c;投资者还应该关注券商的服…

10. UE5 RPG使用GameEffect创建血瓶修改角色属性

前面我们通过代码实现了UI显示角色的血量和蓝量&#xff0c;并实现了初始化和在数值变动时实时更新。为了测试方便&#xff0c;没有使用GameEffect去修改角色的属性&#xff0c;而是通过代码直接修改的数值。 对于GameEffect的基础&#xff0c;这里不再讲解&#xff0c;如果需要…

5.列表选择弹窗(BottomListPopup)

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET 7、MAUI 从底部弹出的列表选择弹窗。 1.布局 <?xml version"1.0" encoding"utf-8" ?> <toolkit:Popup xmlns"http://schemas.microsoft.com/dotnet/2021/maui"xmlns…

幻兽帕鲁游戏多人联机服务器价格对比:腾讯云VS阿里云VS华为云

《幻兽帕鲁》游戏5天捞金15亿&#xff0c;而且想要多人联机玩游戏&#xff0c;还允许我们自己购买服务器来搭建专属服务器&#xff0c;届时三五好友一起来玩&#xff0c;真的不要太爽啊&#xff01;那么搭建幻兽帕鲁游戏多人联机的服务器需要多少钱&#xff1f;下面boke112百科…

搜索引擎Elasticsearch了解

1.Lucene 是什么? 2.模块介绍 Lucene是什么: 一种高性能,可伸缩的信息搜索(IR)库 在2000年开源,最初由鼎鼎大名的Doug Cutting开发 是基于Java实现的高性能的开源项目 Lucene采用了基于倒排表的设计原理,可以非常高效地实现文本查找,在底层采用了分段的存储模式,使它在读…

【JaveWeb教程】(28)SpringBootWeb案例之《智能学习辅助系统》的详细实现步骤与代码示例(1)

目录 SpringBootWeb案例011. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建 1.2 开发规范 2. 部门管理 SpringBootWeb案例01 前面我们已经讲解了Web前端开发的基础知识&#xff0c;也讲解了Web后端开发的基础(HTTP协议、请求响应)&#xff0c;并且也讲解了数据库…