SpringBoot可以让我们快速创建一个基于Spring项目,而且可以简化很多配置。Springboot,主要有如下核心功能:
1. 可以独立运行Spring项目
Spring Boot可以以jar包的形式来运行,运行一个Spring Boot项目我们只需要通过java -jar xx.jar类运行。非常方便。
2.内切servlet容器
Spring Boot可以内嵌Tomcat,这样我们无需以war包的形式部署项目
3.提供starter简化Maven配置
使用Spring或者SpringMVC我们需要添加大量的依赖,而这些依赖很多都是固定的,这里Spring Boot 通过starter能够帮助我们简化Maven配置。
4.Springboot还具有自动配置Spring
5.准生产应用的监控
6.无代码生成和xml配置
除了上面这些,SpringBoot不仅快速提高了开发效率,而且还与以后的云计算有很好的集成
项目创建
环境:IntelliJ IDEA,JDK1.8,Maven
首先创建一个项目,创建时选择Spring Initializr,然后Next,如下图:
填写项目信息,如下图:
填写项目使用到技术,上面的Spring Boot版本建议选择稳定版,下面勾选上Web就可以了,如下图:
最后,填写项目工程名字及项目存放路径点击finish:
注意事项:SpringBoot项目第一次下载运行时由于下载相关的依赖,耗时间较长,后面就会快些。
OK,项目创建成功之后接下来我们来看如何去运行。首先我们看到在项目创建成功之后,在项目的根目录下会有一个artifactId+Application命名规则的入口类,如下图:
这是整个项目的入口类,这个类有一个@SpringBootApplication注解,这是整个Spring Boot的核心注解,目的开启Spring Boot的自动配置。我们再添加一个@RestController注解,使之变为一个Controller,然后里边提供一个地址转换方法,如下:
如下图,我们的项目运行成功,页面访问结果如下:
@SpringBootApplication则是一个组合注解,我们可以看看它的源码:
从上面可以看出SpringBootApplication它主要组合了@SpringBootConfiguration、@EnableAutoConfiguration以及@ComponentScan,@EnableAutoConfiguration则表示让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置我们在开发的过程中如果不使用@SpringBootApplication,则可以组合使用这三个注解
定制banner
我们在启动Spring Boot项目的时候,在控制台会默认输出一个启动图案,如下:
我们如何对它进行修改呢,如下:
1.在src/main/resources下新建一个banner.txt文档
2.通过http://patorjk.com/software/taag网站生成需要的字符,将字符拷贝到步骤1所创建的 txt文档中,
运行结果图像如下:
Spring Boot的配置文件
Spring Boot使用一个全局的配置文件application.properties或者application.yml,配置文件放在src/main/resources目录下。properties是我们常见的一种配置文件,Spring Boot不仅支持properties这种类型的配置文件,也支持yaml语言的配置文件,这以properties类型的配置文件为例来看几个案例。
1.修改Tomcat默认端口和默认访问路径
将Tomcat默认端口是8080,改为8090,默认访问路径是http://localhost:8080,改为http://localhost:8090/xiaogeboot,在application.properties文件中添加如下代码:
server.context-path=/xiaogeboot
server.port=8081
这样我们然后再启动项目,在浏览器中访问如下:
常规属性配置
如果我们使用了Spring Boot,在application.properties中定义属性,然后在代码中直接使用@Value注入即可。 如下:在application.properties中添加如下代码
book.author=张家小哥
book.name=盗墓笔记
book.pinyin=小哥
然后 在IntelliJ IDEA中依次点击File -> Settings -> Editor -> File Encodings
将Properties Files (*.properties)下的Default encoding for properties files设置为UTF-8,将Transparent native-to-ascii conversion前的勾选上。如下图:
接下来我们修改入口类,然后在变量中通过@Value直接注入,如下:
访问浏览器如下:
类型安全的配置
上面这种@value这种方式比较麻烦,当需要配置的内容很多时候。在SpringBoot中,提供了一种基于类型安全的配置,通过@ConfigurationProperties将Properties属性和一个bean及其属性关联,从而实现类型安全配置
1.在src/main/resources文件夹下创建文件book.properties,文件内容如下:
book.author=张家小哥
book.name= 盗墓笔记
2.创建Book Bean,并注入properties文件中的值
package com.example.demo.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
/**
* Created by zhangqiang on 2018/10/5.
*/
@Component
@ConfigurationProperties(prefix="book")
@PropertySource("classpath:book.properties")
public class BookBean {
private String author;
private String name;
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在增加添加路径映射@ConfigurationProperties(prefix=“book”)@PropertySource(“classpath:book.properties”)时县需要注意,
在Controller中添加@Autowired如下代码注入Bean及增加引用路径如下:
添加成功后运行如下:
日志配置
默认情况下Spring Boot使用Logback作为日志框架,我们也可以手动配置日志级别以及日志输出位置,在application.properties中添加如下代码:
logging.file=E:/xuexihao/muke/log/log.log
logging.level.org.springframework.web=debug
上面表示配置日志输出位置,下面配置日志级别,运行如下图:
Profile配置问题
在Spring Boot 中系统提供了不同环境的配置方式。全局Profile配置我们使用application-{profile}.properties来定义,然后在application.properties中通过spring.profiles.active=prod来指定使用哪个Profile。如下
在src/main/resources文件夹下定义不同环境下的Profile配置文件,文件名分别为application-prod.properties和application-dev.properties,前者表示生产环境下的配置,后者表示开发环境下的配置,如下:
配置如下:
application-dev.properties:
server.port=8080
application-prod.properties:
server.port=8090
然后在application.properties中进行配置,如下:
spring.profiles.active=dev
这表示使用开发环境下的配置。然后运行项目,通过8080端口可以访问如下:
如果换为生产环境,需要把spring.profiles.active=dev改为spring.profiles.active=prod即可,当然访问端口这是也变为8090,如下:
SpringBoot初识第一篇完结,参考资料:《JavaEE开发的颠覆者 Spring Boot实战》第五
章、第六章
下一篇:SpringBoot(2)SpringBoot的Web开发
热门评论
,谢谢,辛苦了,写的真好