快速开始springboot应用官方向导搭建boot应用1.地址:2.设置项目属性:3.解压,拷贝到工作空间,导入maven项目4.写Controller:HelloController.java5.启动SpringBoot类:DemoApplication普通maven工程搭建boot应用1.新建一个普通的maven工程,选择quickstart【注意:Springboot是web工程,但是我们这里只需要建立quickstart即可,因为springboot内嵌了servlert容器】2.查看官方文档:点击quickstart3.选择版本【1.5.10.RELEASE】,建议:生产环境中选择的版本4.拷贝依赖的父pom到的工程pom文件中:
org.springframework.bootspring-boot-starter-parent1.5.10.RELEASEorg.springframework.bootspring-boot-starter-web5.从上面的第一个boot项目的pom中拷贝项目构建的内容到当前工程中(以为每个maven项目都必须要的):
UTF-8UTF-81.8org.springframework.bootspring-boot-maven-plugin6.如果项目出现红叉,选择项目--》右键--》Maven--》UpdateProject7.拷贝文档中的事例代码SampleController.java到工程中8.Runas-->JavaApplication启动SampleController.java9.浏览器输入:即可当然,除了以上两种方式搭建boot工程,也可以通过其它工具快速生成,例如idea,sts,springbootcli等这些工具集成了springboot特性,可以一键生成springboot工程骨架StarterPOM统一父POM管理建立boot-parent工程好,首先我们建立一个boot-parent的maven工程:然后修改pom.xml1.packaging改为为pom格式:
pom2.加入dependencyManagement,同时去掉version,直接使用父pom中的版本即可3.删除无用的源文件,只保留pom.xml4.修改pom.xml,加入如,从上面获取即可:那么我们要成为一个springboot项目,必须要引入他的父pom对不对:于是加入他的父pom:
org.springframework.bootspring-boot-parent1.5.10.RELEASE建立boot-base工程:建立boot-base工程,实现之前的helloworld功能:1.在boot-parent工程上面,建立mavenmodule模块工程2.把之前的SampleController.java过来,但是会报错,这时候,加入如:
org.springframework.bootspring-boot-starter-web1.如果报错,如下:2.需要修改父pom.xml,boot-parent中的pom.xml,加入如:3.启动SampleController,然后:springboot一个很重要的特点:解决了所有依赖的版本问题springboot测试1.添加测试支持依赖:spring-boot-starter-test
org.springframework.bootspring-boot-starter-testtest注意:加入这个依赖之后,junit包就可以不用了,因为test的starter中包含了junit备注:怎么找到所有的starter:这里面ctrl+f搜索:starter,就可以看到springboot中的所有starter1.在测试建立测试程序类,测试SampleController3.编写测试类:soeasyspringboot启动注解分析1.@EnableAutoConfiguration:开启自动配置功能@ComponentScan(basePackages={"com.example.boot"})包扫描2.@SpringBootApplication配置详解:他是一个组合注解,他内部主要包含三个子注解:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan@SpringBootConfiguration:他继承@Configuration,说明这是一个配置类,什么是配置类呢?就相当于我们以前写的xml配置,例如我们我们的bean,用来实例化一个bean。那么在这个配置类中就是实现以前我们xml配置的功能@EnableAutoConfiguration:开启自动配置功能,他会扫描带有@Configuration的类,然后初始化这些配置类中的并且加入到应用上下文中去,同时完成一些基本的初始化工作@ComponentScan:组件包扫描,也就是我现在需要扫描哪些包下面的注解,可自动发现和装配一些bean。默认扫描当前启动类所在包下面的类和下面的包springboot热加载/部署1.加入springloaded
org.springframeworkspringloaded2.加入spring-boot-devtools
org.springframework.bootspring-boot-devtools3.启动程序,浏览器出现第一个结果,然后修改器输出内容,再次刷新看到新的结果同时在台可以这样一句话:o.s.b.d.a.OptionalLiveReloadServer:LiveReloadserverisrunningonport35729项目打包部署1.修改boot-parent中pom.xml文件,增加如(当然也可以把下面的内容到子模块中也是可以的)
org.springframework.bootspring-boot-maven-plugincom.example.boot.SpringBootMainrepackage2.执行maveninstall3.在target目录下面,可以看到打包的jar文件4.执行java-jarxx.jar例如:D:\tools\javaSE1.8\jdk1.8\bin>java.exe-jarD:\01_dev_env\repos\com\example\boot\boot-base\0.0.1-SNAPSHOT\boot-base-0.0.1-SNAPSHOT.jar【注意:执行jar的jdk版本需要与jar打包编译的版本一致。如果配置了环境变量,直接使用java命令打包即可】这就是微架构,一个程序打包之后轻轻松松在如任何地方一执行就完成了。SpringBoot属性配置文件详解修改端口application.properties:server.port=8888另外,也可以直接在运行jar包的时候修改java-jarxx.jar--server.port=8888自定义属性及获取1.application.properties中[文件改成UTF-8]:teacher.id=1teacher.name=zhangsan2.@Value("${属性名}")获取对应的属性值@ControllerpublicclassSampleController{@Value("${teacher.name}")privateStringteacherName;@RequestMap("/")@ResponseBodypublicStringhome(){return"HelloWorld!"+this.teacherName;}}参数application.propertiesteacher.id=1teacher.name=zhangsanteacher.info=Teacher${teacher.name}'snumberis${teacher.id}随机内容生成#随机字符串random.string=${random.value}#随机intrandom.number=${random.int}#随机longrandom.long=${random.long}#1-20的随机数random.b=${random.int[1,20]}多环境配置我们在开发应用时,通常一个项目会被部署到不同的环境中,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,对于多环境的配置,大部分构建工具或是框架解决的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,SpringBoot也提供了支持在SpringBoot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:⚫application-dev.properties:开发环境⚫application-test.properties:测试环境⚫application-prod.properties:生产环境至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profileive属性来设置,其值对应{profile}值。比如:spring.profileive=dev就会加载application-dev.properties配置文件中的内容案例:在dev,test,prod这三个文件均都设置不同的server.port端口属性,如:dev环境设置为8081,test环境设置为8082,prod环境设置为8083application.properties中设置spring.profileive=dev,就是说默认以dev环境设置总结:1.application.properties中配置通用内容,并设置spring.profileive=dev,以开发环境为默认配置2.application-{profile}.properties中配置各个环境不同的内容Springboot集成模板引擎实现web应用静态资源静态资源:js,css,html,图片,音等静态资源路径:是指系统可以直接的路径,且路径下的所有文件均可被用户直接。SpringBoot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources案例:在classpath下面创建static目录,并且加入一个图片a.png加入之后,然后不需要重启直接:修改默认的静态资源目录:spring.resources.static-locations模板引擎SpringBoot强烈建议使用模板引擎渲染html页面,避免使用JSP,若一定要使用JSP将无法实现SpringBoot的多种特性。在这里讲两种模板引擎的集成:Thymeleaf(springboot推荐),Marker【师傅领进门,修行靠个人,哈哈】ThymeleafSpringboot默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径集成Thymeleaf步骤:1.修改pom.xml,增加如下依赖:
org.springframework.bootspring-boot-starter-thymeleaf2.编写Controller@ControllerpublicclassSampleController{@RequestMap("/testThymeleaf")publicStringtestThymeleaf(MMapmap){//设置属性map.addAttribute("name","zhangsan");//testThymeleaf:为模板文件的名称//对应src/main/resources/templates/testThymeleaf.htmlreturn"testThymeleaf";}}3.在src/main/resources/下面建立templates/testThymeleaf.html
testThymeleafABC