springboot 多环境配置和切换
在实际开发中,我们往往需要用到开发,测试,生产等环境,为了方便环境的切换,springboot提供了profile功能.
profile是spring对不同坏境提供不同配置功能的支持,可以通过激活,指定参数等方式快速切换.
一共有三种方式,各位可以根据项目使用薯盯让最适合自己的那一种.
第一种:配置文件激活: spring.profiles.active=dev
1,多profile文件形式----使用properties配置文件
在主配置文件编写的时候,文件名可以是 application-{profile}.properties,如图所示
2,多profile文档快模式----使用yml做配置文件
可以使用yml文档块方法配置不同环境,比properties更简洁方便,三条杠(---)作为分割,自定义profiles,active对应就可以了.请看具体实现.
结果是启动项目8082端口
第二种:使用命令行激活
1,命令行 --spring.profiles.active=dev
命令行方式有两种,一种是在IDEA中配置(eclipse中同数局样位置),一种在打包后使用cmd配置
2,打包,打包过程很多同学都熟悉,这里简单说一下,请看图
打包成功会出现两个以项目名开头的文件, 右键其中一个文件-show in Explorer,进入文件所在目录,在地址栏中输入cmd,进入命令行
输入以上命令 并Enter,就可以运行springboot,查看启动端口号,可以看到启动了8081.
其中spring-boot-0.0.1-SNAPSHOT.jar是你自己项目打包后的文件名,记得替换一下.
第三种:jvm参数方式激活 -Dspring.profiles.active=dev
和命令行的第一种配置在同一个地方,虚拟机配置也很简单,请看图片
点击apply-ok,启动后,使用的8081端口.
大致就是这三种激活方式,一般情况下都是使用的第一种则衫配置文件激活,方便还不容易出错.
Mac IDEA Spring Boot 热部署
1.pom.xml
dependency
groupIdorg.springframework.boot/groupId
仿锋 artifactIdspring-boot-devtools/artifactId
optionaltrue/optional
scopetrue/scope
/dependency
plugin
备者晌groupIdorg.springframework.boot/groupId
artifactIdspring-boot-maven-plugin/artifactId
configuration
forktrue/fork
/configuration
/plugin
2.IDEA配嫌仔置
yml文件中添加:
devtools:
restart:
enabled: true
完成后即可实现热部署功能。
IDEA 2019配置SpringBoot实现热部署
1)设置IDEA的自动编译:
“File”→哗或顷“Settings(Ctrl+Alt+S)”→“Build, Execution, Deplyment”团圆→“Compiler”,选中“Build project automatically” 打勾
2)组合键 Shift+Ctrl+Alt+/,选择 Registry ,找到compiler.automake.allow.when.app.running,选中乱陆打勾。
(或者CTRL + SHIFT + A -- 查找Registry)
设置游览器禁用缓存:F12
至此配置完成,修改文件后不用重启,刷新页面即可看到效果
IntelliJ IDEA搭建SpringBoot项目
若不使用镜像,会发现maven项目会同步半天都不成功。
pom.xml报错日志:
getInputStream() must not be called against a directory: apache-maven-3.6.3/conf
通过修改亮芹application.yml文件即可,注意SpringBoot2.0前后的写法不一样。
2.0及之前:
server.context-path=/myprojectname
2.0之后:
server.servlet.context-path=/myprojectname
而且还有个重点我要强调: key与value之间一定要空格 。
建议远程部署war包之前,先在本地Tomcat部署测试,再去远程部署测试。
下面的都是打war包然后部署
上面的这些博客说的可能千奇百怪,我实践总结了一下,就两点:
1)pom.xml配置打包类型为war
packagingwar/packaging
2)定义ServletInitializer类
定义ServletInitializer类,和Application同一目录:
当然也可以把这个configure方法直接写到Application类里。
3)生成war包放到tomcat里
第一步: pom.xml里添加依赖
第二步:写html
怎么让html适配手机的大小:
在head里添加 meta charset="UTF-8" name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"
第三步:配置application.yml文件
这里的mode: LEGACYHTML5需要依赖第一步pom.xml中依赖的nekohtml,代表不是严格规范的HTML5,否则html5很容易报错。
第四步:新建Controller
1)注意@Controller不是@RestController,后者这个接口会返回普通的字符串,而不是一个网页。
2)注意pom.xml中的 spring-boot-starter-thymeleaf ,没有这个的话,接口会报渗判404。
电脑经常性的重启,导致IDEA意外关闭,然后项目就不被识别为敬喊毕Maven项目了,View-ToolWindow-MavenProject就没有这个选项。application.yml修改也没有生效。
解决办法:关闭项目重新import导入即可
SpringBoot | IDEA 搭建 springboot 项目 + jsp 页面模板
搭建 springboot 项目,web页面用 jsp 模板
我把自己遇到的问题和解决方法罗列了一下,看看你们会不会也遇到这些问题
Group 和 Artifact 被称为“坐标”,为了保证项目唯一性
Group分为多个段,一般可设成两段,第一段为域,例如org、com、cn,org为非营利组织,com为商业组织;第二段为公司名称
Artifact 为项目名称
其他的可根据自己的需求选择对应的 starter 进行依赖,或者可后期在pom.xml 中配置
在 main 下新增 webapp 目录, 在 webapp 目录下新增 WEB-INF 目录和 jsp 目录,则将 jsp 文件创轿兄猜建在 jsp 目录下
右击 jsp 目录 - new - JSP/JSPX page 创建 jsp 文件,例如本文创建 index.jsp
首先,右击尘亮 项目 - Open Module Settings
选择Modules - 选择Web - 点击 + 号 - 点击 web.xml
选择 main\webapp\WEB-INF 目录,在后面添加上 web.xml,点击ok
web.xml 内容如下:
添加 org.apache.tomcat.embed 的 tomcat-embed-jasper 依赖包和 javax.servlet 的 jstl 依赖包
配置tomcat端口(默认值为8080),可以选择不配置
spring.mvc.view.prefix 和 spring.mvc.view.suffix 是 Spring Boot 约定的视图前缀和后缀的配置,意思是找到 /jsp/ 目录下以 .jsp 为后缀的 JSP 文件
右击 com.spring.demo 目录 - new - 选择 pakage,新增 controller 包
右闭型击 controller 目录 - new - 选择 Java Class,创建 Controller 类 ,本人创建为 IndexController 类
引入注解 @Controller 和 @RequestMapping,返回 jsp 页面
springboot 小 demo 搭建完毕 ^_^