拦截器 JWT SpringBoot 多环境开发 本地文件上传 阿里云OSS存储 异常处理

news2024/9/23 17:16:39

Springboot:

                    是:由pivotal团队提供的全新框架,其设计目的是用来简化spring应用的初始搭建以及开发过程

                作用:简化Spring的环境搭建和代码开发

         使用原理:就是boot提前写好了一些maven的工程和jar包,程序员在创建maven工程的时候,只需要继承或依赖相应

                           的jar包或工程即可;

         使用方式:1.idea直接创建

                           2.创建后引入坐标:

                                                         1.先按以前的方式创建普通的maven工程;

                                                          2.在创建好的maven工程引入boot相关坐标并继承boot工程即可
                                                                         <dependencies>
                                                                                 <dependency>
                                                                                         <groupId>org.springframework.boot</groupId>
                                                                                         <artifactId>spring-boot-starter-web</artifactId>
                                                                                 </dependency>
                                                                         </dependencies>

                           替换boot自带的服务器:只需要在我们自己的pom文件中,排除父工程中的tomcat插件,同时自己引入一个

                                                                  新的jetty服务插件即可;             
                                                                         

  

boot配置文件:

                                 有三种格式的配置文件,名称固定的!

                                                 application.properties

                                                 application.yml(推荐)

                                                 application.yaml

                                                 从上到下,优先级依次降低;       

                                修改服务器端口号(yml方式) 

                                                            

                                yml介绍:是YAML(YAML Ain 't Markup Language),一种数据序列化格式     

                                             特点:

                                                      优点:容易读 

                                                                 容易与脚本语言交互

                                                                 以数据为核心,重数据化格式

                                                       YAML文件扩展名:.yml(主流)

                                                                                      .yaml

                                语法格式:大小写敏感

                                                  属性层级关系使用多行描述,每行结尾使用冒号结束

                                                  使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)

                                                  属性值前面添加空格  (属性名与属性值之间使用冒号+空格作为分隔)

                                                  #表示注释

                                                  核心规则:数据前面要加空格与冒号隔开

                                 读配置文件中的信息方式:3种方式

                                                  1.直接利用@value(key)逐个读;(了解)

                                                  2.直接利用Environment整个配置文件全读;(了解)

                                                  3.自定义JavaBean读(推荐)

                                   使用自定义javabean读:1.自定义一个pojo;

                                                                           2.给自定义的pojo加两个注解:

                                                                                @Component                                                                                 @ConfigurationProperties (prefix="配置文件中的对象信息")

                                                                           3.将来在使用的时候,可以直接利用自动注入 ,注入JavaBean对象即可   

  

 

多环境开发启动方式:比如开发好了,在生产环境测一下

大体上分为两类:

                        1.直接利用在配置文件中配置的环境;

                            java –jar springboot.jar --spring.profiles.active=配置文件中配置的环境名

                       2.在启动boot工程的时候,临时指定参数;

                           java –jar springboot.jar --参数名=参数值

 

 

 

 SprinBoot整合junit:

                 两步骤:1.导入坐标

                                                 <dependency>
                                                            <groupId>org.springframework.boot</groupId>
                                                            <artifactId>spring-boot-starter-test</artifactId>
                                                            <scope>test</scope>
                                                 </dependency>                                

                                2.在测试类的上面添加一个注解:@SpringBootTest,在测试类中,需要什么资源,就让ioc自动注入

                                   什么资源即可  ;     

                                        

  SprinBoot整合SSM:

 整合思路:无需管理spring和springMVC,只需要配置一个连接池,用于整合mybatis并且将mybatis中的所有dao层的接口,

                  上面添加一个@mapper注解即可

具体步骤:1.利用idea创建boot工程,选择:Spring web,mybatis,mysql;

                  2.在yml配置连接池信息即可;

                  3.引入一些额外的依赖即可;

                    

                  4.代码层次的改动:仅仅是将mapper或dao层的接口的上面添加一个@mapper注解;

                        

 

 

                 

文件上传:

                       概述:将本地文件,通过网络,上传到服务器所在的电脑上

                                 文件上传的方式有两种:服务器本地存储网络云存储

                                  html页面完成文件上传的三要素:

                                                                                      1.必须有表单的post请求方式;

                                                                                      2.表单的提交方式multipart/form-data

                                                                                      3.必须有一个上传的组件

                       controller中代码实现:

                                                       实现思路:只需要给方法上添加一个MultipartFile类型的参数即可;

                                                                         MultipartFile是SpringMVC提供的一个,专门用于封装页面传递的文件对象的,

                                                                        里面提供了一些获取文件名和获取输入流本地上传的方法,

                                                                        程序员直接面向对象的方法即可;

                                                       MultipartFile常用方法:

                                                                                           String getOriginalFilename();//获取原始文件名 

                                                                                           void stansferTo(File dest);//将接收的文件存到磁盘文件

                                                                                           long getSize();//获取文件大小, 单位:字节

                                                                                           InputStream getInputStream();//获取接收到的文件内容的输入流:

                       本地上传的controller 参考代码:

                                  

                                  

阿里云OSS存储:

                               概述: 

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

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

相关文章

Android屏幕适配dp、px两套解决办法

最新最全文章(2018-08-25)&#xff1a;Android dp方式的屏幕适配-原理(后期补充完整讲解)_手机dp输出是横屏还是竖屏_android阿杜的博客-CSDN博客 “又是屏幕适配&#xff0c;这类文章网上不是很多了吗&#xff1f;” 我也很遗憾&#xff0c;确实又是老问题。但本文重点对网上…

ChatGPT来势凶猛,公有云格局会不会大变?

【引言】&#xff1a; AI风暴来袭&#xff0c;全球无人幸免。 但公有云与ChatGPT到底啥关系&#xff1f; 1) 公有云与ChatGPT&#xff0c;到底谁会“吃”掉谁&#xff1f; 【科技明说 &#xff5c; 热点关注】在看到公有云厂商纷纷开始大模型发布&#xff0c;开始GPT的融入之…

虹科教您 | 基于Linux系统的虹科RELY-TSN-KIT套件操作指南(2)——操作演示

RELY-TSN-KIT是首款针对TSN的开箱即用的解决方案&#xff0c;它可以无缝实施确定性以太网网络&#xff0c;并从这些技术复杂性中抽象出用户设备和应用。该套件可评估基于IEEE 802.1AS同步的时间常识的重要性&#xff0c;并借助时间感知整形器来确定性地交付实时流量&#xff0c…

EJBCA搭建

EJBCA搭建 前言&#xff1a; 本次EJBCA搭建使用操作系统为centos 7&#xff0c;shell用户为root。 1.下载jdk环境&#xff1a; // 下载jdk yum install -y java-1.8.0-openjdk-devel // 查看java版本 java -version 本人jdk环境&#xff1a; openjdk version "1.8.…

计算机自动化有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是计算机自动化领域的一些知名SCI期刊&#xff1a; IEEE Transactions on Automation Science and Engineering&#xff1a; 该期刊由IEEE&#xff08;电气和电子工程师协会&#xff09;出版&#xff0c;涵盖了自动化科学和工程领域的研究&#xff0c;包括自动控制、人工…

算法记录 | Day35 贪心算法

860.柠檬水找零 思路&#xff1a; 只需要维护三种金额的数量&#xff0c;5&#xff0c;10和20。 有如下三种情况&#xff1a; 情况一&#xff1a;账单是5&#xff0c;直接收下。情况二&#xff1a;账单是10&#xff0c;消耗一个5&#xff0c;增加一个10情况三&#xff1a;账…

九、Locust运行与配置

1. 配置 1.1 环境变量 也可以通过环境变量设置选项。它们通常与命令行参数相同&#xff0c;但大写并带有前缀LOCUST_&#xff1a; 在 Linux/macOS 上&#xff1a; $ LOCUST_LOCUSTFILEcustom_locustfile.py locust在 Windows 上&#xff1a; > set LOCUST_LOCUSTFILEcu…

MySQL的安装与卸载(Centos7.9环境下,全篇图文手把手安装教程)

前言 在安装MySQL之前&#xff0c;我们先来看看MySQL如何卸载。如果从未安装过MySQL的任何版本&#xff0c;可以直接跳过这部分。 如果已经安装过MySQL&#xff0c;一定要确保自己的环境中的MySQL相关文件删除干净&#xff0c;否则重新安装时可能会出现一些错误 tips&#xf…

问界M9全剧透:华为的「科技豪华」样板间

作者 | 德新 编辑 | 王博 今天在nova 11的发布会上&#xff0c;曝了一个意外——问界M9提前剧透。实际上这车要今年四季度才上市。「本来没打算这么早发出来&#xff0c;前阵子网上有一个很老的设计图在传&#xff08;实在太丑&#xff09;。没办法&#xff0c;干脆先讲讲」…

DriveGPT、车企订单背后,为什么毫末每年都能搞出新东西?

作者 | 祥威 编辑 | 德新 4月11日&#xff0c;毫末智行正式发布自动驾驶生成式大模型 DriveGPT&#xff0c;中文名 雪湖海若&#xff0c;可以提升自动驾驶认知能力&#xff0c;最终提升规控效率。 雪湖海若的核心&#xff0c;是将各种驾驶场景作为Token输入到模型中&…

《Netty》从零开始学netty源码(三十九)之PoolSubPage的内存分配

目录 PoolSubPage.allocategetNextAvail方法toHandle方法removeFromPool方法 PoolSubPage.allocate 上一篇我们介绍了PoolSubPage的简单知识&#xff0c;当我们需要PoolSubPage的内存时可调用allocate方法查找可分配二进制的位置&#xff0c;具体的源码过程如下&#xff1a; …

ctfshow web入门命令执行web74-118

1.web74 还是先扫目录 payload: c$anew DirectoryIterator(glob:///*);foreach($a as $f){echo($f->__toString()." ");}exit(0); #扫描根目录有什么文件 c$anew DirectoryIterator(glob:///*);foreach($a as $f){echo($f->getFilename()." ");} …

N32G430学习笔记20--- spi外设单工模式下spi1中断发送和spi2中断数据接收

基本知识 spi主模式下使用硬件NSS(3个条件缺一不可): 设置硬件NSS模式设置NSS电平为低电平使能NSS输出spi主模式下使用软件NSS: 设置软件NSS模式 使能NSS输出 SPI_SS_Output_Enable(SPI1);//NSS 使能 SPI接线方式(MISO 和MOSI反着接) SPI1->SLCK=PB3 <–> SPI2-…

在SPRO为定制表创建节点

确定透明表已创建&#xff0c;允许维护&#xff0c;并且生成维护视图。保证SM30可以正常维护。 2.在已有的节点增加还是新增&#xff0c;如果在以有的节点增加&#xff0c;需要查看已有节点的Enhancement ID 。 查看方法具体请点击。 举个例子&#xff1a;我们想在Z-business C…

每日学术速递4.17

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.DreamPose: Fashion Image-to-Video Synthesis via Stable Diffusion 标题&#xff1a;DreamPose&#xff1a;通过稳定扩散实现时尚图像到视频合成 作者&#xff1a;Johanna Karr…

无聊写个 chatgpt 玩玩!这不得试一试 openai 的聊天和绘画功能

chatgpt 最近很火。使用 chatgpt 问一些问题还是很有用的。比如面试题&#xff0c;面试题的答案。简直不要太爽。 不过闲来无事&#xff0c;也使用 openai 提供的api &#xff0c;写了几个小页面&#xff0c;可以进行聊天&#xff0c;和绘画。 项目放在 github 上了&#xff…

cmake和cmake install学习

cmake 设置cmake的C/C编译标准 set(CMAKE_CXX_STANDARD 17) set(CMAKE_C_STANDARD 11)add_library生成的默认是静态库还是动态库 https://blog.csdn.net/HandsomeHong/article/details/122401900 add_library()命令生成的默认库类型取决于第二个参数。如果第二个参数是STATI…

python-day3

第003天 函数和模块的使用 定义函数 在python中可以使用def关键字来定义函数&#xff0c;和变量一样每个函数也有一个名字&#xff0c;而且命名规则和变量的命名规则是一致的。在函数名后面的圆括号中可以放置传递给函数的参数&#xff0c;程序中函数的参数就是相当于数学上…

企业级信息系统开发学习笔记05 初探Spring AOP

文章目录 一、学习目标二、Spring AOP&#xff08;一&#xff09;AOP基本含义&#xff08;二&#xff09;AOP基本作用&#xff08;三&#xff09;AOP和OOP对比&#xff08;四&#xff09;AOP使用方式&#xff08;五&#xff09;AOP基本概念 三、采用配置方法使用AOP&#xff08…

STM32实验-高级定时器输出指定个数PWM

STM32F103ZET6中有TIM1,TIM8两个高级定时器&#xff0c;每一定时器都有 1、一个16位向上、向下、向上/下自动装载计数器 2、一个16位预分频器和四个独立从输入输出通道 3、每一个通道都可用于输入捕获、输出比较、PWM和单脉冲模式&#xff08;除了基本定时器&#xff0c;高级定…