Tomcat的bin文件夹startup.bat启动需要设置JAVA_HOME环境变量
compile group: ‘org.springframework.boot’, name: ‘spring-boot-starter-web’, version: ‘2.3.4.RELEASE’ 或 compile(‘org.springframework.boot: spring-boot-starter-web: 2.3.4.RELEASE’)
thymeleaf在springboot 2.X使用时,也需要添加spring-boot-starter-thymeleaf
继承、依赖、插件
用于自动化配置 application.properties(server.port=8180,高优先级) 或 application.yml
server: port: 8188使用server.port=8080 解决了端口占用问题 加载顺序:项目根目录的config子目录 > 项目根目录中 > resources即classpath下的config子目录 > resources 占位符 ${ }
server: port: ${random.int(1024,3000)}bootstrap是应用程序的父上下文,加载优先于application。是spring应用程序外部属性的来源,默认不能被本地相同配置覆盖
修改本地gradle,distributionUrl=file:///E:/data/gradle-5.2.1-bin.zip
普通非springboot项目,gradle打jar包后,运行jar包需要在jar包的MANIFEST.MF中添加 Main-Class: com.demo.Main (后面为启动类(含包名),中间有空格)
在build.gradle 里面添加这段构建打包配置,即可打出来一个可执行的jar包。
//构建打包的配置 jar { //遍历依赖,追加到someStirng上 String someString = '' configurations.runtime.each {someString = someString + " lib//"+it.name} //指定项目清单 manifest { attributes 'Main-Class': 'com.it.MainApp' //指定启动类 attributes 'Class-Path': someString //指定依赖 } } //指定编码类型 tasks.withType(JavaCompile) { options.encoding = "UTF-8" } //拷贝jar ,把依赖都放到build/libs/lib中 task copyJar(type:Copy){ from configurations.runtime into ('build/libs/lib') } //构建一个自定义任务release , dependsOn 表示它依赖两个子任务 build 和 copyJar task release(dependsOn: [build,copyJar]){ } 点击gradle--Tasks--other--release ,生成jar包代码没有放在包里, 入口类一定要在包里面。 入口类放在根包
com.it / MainApp
App
未来的所有代码都放在入口类包下的子包里面。
com.it.controller
com.it.service
com.it.util
为什么一定要这么放。
有原因的。因为@SpringBootApplication 这个注解会扫描入口类所在包以及它的子包所有类,以便识别这些类上面是不是有注解。 @Controller | @Service | @Repository …
