Spring Boot实用小技巧7

科技   2024-10-22 08:30   福建  

历史文章(文章累计520+)
Spring Boot
Spring Boot
Spring Boot
Spring Boot
Spring Boot

Spring Boot

Spring Boot

SpringBoot多例模式,在同一个类中注入两次是否是同一个对象 – 一不小心就会写出一个重大BUG!!- 521篇

SpringBoot基本原理,轻松应对面试官 - 第522篇

Spring Boot实用小技巧 -  - 第523篇

Spring Boot实用小技巧2 - 第524篇

Spring Boot实用小技巧3 - 第525篇

Spring Boot实用小技巧4 - 第526篇

Spring Boot实用小技巧5 - 第527篇

Spring Boot实用小技巧6 - 第528篇



把一段音频、一张照片输入AI模型,就能让图中人物开口唱歌说话,让奥黛丽赫本唱《上春山》、陶俑仕女说英文RAP、爱因斯坦说中文段子。

在之前要做到这样的事情,一般人不敢想象,现在有了AI,自己也能成为歌唱家了!

访问下面的地址让照片唱歌,你就是下个歌手达人:

https://noisee.com.cn/#/?i=8NCBS8_WXTT




导读

应粉丝要求,已经将最近写的小技巧系列归档成一个小专栏。在文章的末尾可以看到一个标签:#SpringBoot小技巧合集,点击进去就可以看到历史所有的小技巧篇章。

小技巧系列,再有个小几篇就结束了,接下来要写哪一个方向的,还是有点迷茫了。

SpringBoot公众号文章已经写了有几年了,确实坚持写下来真的是很不容易,有时候自己也会很迷茫,我也是一个普通的人,普普通通的人。

技巧一:允许跨域访问

CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

跨域解决方案:

两个大的方向,使用SpringBoot配置的方法,不使用SpringBoot配置的方法。

不使用SpringBoot配置的方法:

(1)通过nginx来解决的

(2)通过jsonp(只支持get请求)来解决

使用SpringBoot配置的方法:

(1)利用@CrossOrigin注解,可放至在类上或者方法上。类上代表整个控制层所有的映射方法都支持跨域请求。

(2)配置全局CORS配置。

技巧二:独立Tomcat运行

讲解了这么久,一般上我们都是通过jar包的方式进行启动的应用的。所以部署在独立的tomcat时,需要如何解决呢?其实也简单,只需要将项目打包方式修改为war包,然后修改下启动类配置即可。

(1)修改pom打包方式为war,同时排除了内置的tomcat。

<packaging>war</packaging><!-- 排除内置的tomcat -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-tomcat</artifactId>            <scope>compile</scope>        </dependency><!-- 若直接有使用servlet对象时(这是废话,⊙﹏⊙‖∣),需要将servlet引入,本例是没有的~ -->       <dependency>          <groupId>javax.servlet</groupId>          <artifactId>javax.servlet-api</artifactId>          <scope>provided</scope>       </dependency>


(2)改造下启动类,使其继承SpringBootServletInitializer,同时覆盖configure方法。

@SpringBootApplication@Slf4jpublic class ChapterApplication extends SpringBootServletInitializer{
public static void main(String[] args) { SpringApplication.run(ChapterApplication.class, args); // new SpringApplicationBuilder().sources(ChapterApplication.class).web(false).run(args); //之后这里设置业务逻辑 比如挂起一个线程 或者设置一个定时任务。保证不退出 //不然它就是一个启动类,启动后就停止了。 log.info("jar,chapter启动!"); }
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { log.info("外部tomcat,chapter启动!"); return application.sources(ChapterApplication.class); }}


(3)maven打包成war(mvn clean install),然后放入tomcat中,启动运行即可。


技巧三:启动不设置端口

对一些定时任务服务项目,其本身只是提供一个定时调度功能,不需要其他服务调用,只是去调度其他服务。像这样的服务,正常也就不需要设置端口了。这时候SpringBoot也是支持的。只需要改下启动方式:

new SpringApplicationBuilder().sources(ChapterApplication.class).web(false).run(args);//之后这里设置业务逻辑 比如挂起一个线程 或者设置一个定时任务。保证不退出//不然它就是一个启动类,启动后就停止了。


或者修改配置文件的属性:

spring.main.web-environment=false

启动看下,是不是没有看见端口了。


技巧四:启动完成前进行业务逻辑

利用CommandLineRunner或者ApplicationRunner可实现在SpringApplicationrun()完成前执行一些业务逻辑

方式一:实现CommandLineRunner接口,ApplicationRunner类似,只是run的入参不同而已。

方式二:直接申明一个bean,实现CommandLineRunner。

若多个时,可设置@Order来确定执行的顺序。


技巧五:设置网站图标

原来我们在使用tomcat开发时,设置网站图片时,即icon图标时,一般都是直接替换root包下的favicon.ico替换成自己的,或者在网页的头部设置linkreficon然后设置其href值。而在SpringBoot中,替换图片也是很简单的,只需要将自定义图片放置在静态资源目录下即可,即默认有staticpublicresources/META-INF/resources或者自定义的静态目录下即可。


历史文章(文章累计520+)
国内最全的Spring Boot系列之一
国内最全的Spring Boot系列之二
国内最全的Spring Boot系列之三
国内最全的Spring Boot系列之四
国内最全的Spring Boot系列之

国内最全的Spring Boot系列之六

国内最全的Spring Boot系列之

Transaction rolled back because it has been marked as - 第512篇

五音不全也浪漫,521清华学霸为爱人写歌 - 第513篇

一文讲清楚SpringBoot项目打包jar后运行报错template might not exist - 第514篇

idea springboot woff/woff2/eot/ttf/svg等小图标不显示的问题 - 第515篇

Noisee AI中文站网页版 AI 音乐生成视频全新登场,快来抢先体验——国内第一个登场的中文站来袭  - 516篇

Spring的SmartLifecycle可以没用过,但没听过就不好了!- 第517篇

SpringBoot异常处理机制之自定义404、500错误提示页面 - 518篇

SpringBoot 中多例模式的神秘世界:用法区别以及应用场景,最后的灵魂拷问会吗?- 第519篇

SpringBoot开发的AI导航站技术架构剖析 —— 技术如何选型 -  第520篇

SpringBoot多例模式,在同一个类中注入两次是否是同一个对象 – 一不小心就会写出一个重大BUG!!- 521篇

SpringBoot基本原理,轻松应对面试官 - 第522篇

Spring Boot实用小技巧 -  - 第523篇

Spring Boot实用小技巧2 - 第524篇

Spring Boot实用小技巧3 - 第525篇

Spring Boot实用小技巧4 - 第526篇

万物皆能舞,AI让你秒变“舞”林高手 – Viggle AI“舞”所不能

法定年龄退休2024年新规,我要到63岁才能退休了,看看你几岁退休,附退休对照表

Suno新上线Covers翻唱新 - 实现音频风格任意转换

Spring Boot实用小技巧5 - 第527篇

Spring Boot实用小技巧6 - 第528篇

又一款AI对口型神器,让照片开口说话唱歌,1分钟教会(附保姆级教程)


SpringBoot
Suno AI制作音乐,Viggle AI - 照片跳舞,AI音乐,Noisee AI制作MV。Spring Boot技术。博客已有400+,文章特色:一个知识点一个系列、让技术变得简单、文章轻松幽默,悟纤和师傅趣谈更是轻松有趣。
 最新文章