笔者所参考的书籍是SpringBoot实战,其理论性说得不多,内容上也不是非常详细。但是说到的内容也足够平时使用了,以下就是我根据SpringBoot实战学到的一些东西,希望分享给大家,并成为我以后回忆这门技术的笔记。
开始SpringBoot之前,我建议大家还是从Spring官网上按照自己的需要下载一个基础包,https://start.spring.io 。在这个笔记当中只需要用到web 和 websocket。
导入到项目当中,然后我们就开始小试牛刀!
一、SpringBoot Web 小试牛刀
可以看到导入之后会有一个DemoApplication的类,这个类会发现有一个@SpringBootApplication。目前这个类就是我们在上几遍说到的配置类,当然SpringBoot让我这种懒人非常兴奋,因为他将我们会用到的东西都配置上去了。而且最重要的是他的自动配置的,会根据当前有什么包和当前的环境去判断应该配置什么。目前我的maven有:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>显然我是一个Web项目,所以Spring已经自动帮我们配置上了SpringMVC的支持,而且我们连最基本的ComponentScan都不用配,Spring都为我们办妥了。
然后我们想尝试创建一个Controller然后我们使用@ResponseBody在页面直接返回一个字符串。当然你可以直接使用@RestController 就不用写@ResponseBody了(@RestController 等于 @Controller @ResponseBody的混合体,可以这样理解)
@Controller public class TestController { @RequestMapping("/") public @ResponseBody String index(){ return "test"; } }
OK,到这里Web容器呢···· 嗯SpringBoot 在 spring-boot-starter-web 做好了一个内嵌在SpringBoot上的Tomcat,当然也可以使用其他Jetty等等的其他Web容器,这个后面说。明显看到我们的项目当中在resources目录下会有一个application.properties配置文件。springBoot基本的配置都会写到这里,例如服务器的端口和contextpath等等都会在这里去配置。
#Servlet容器配置 server.port=8080 server.context-path=/boot server.session.timeout=10800 #server.error.path=/error目前我配置了 8080端口、context-path为/boot 、session超时时间为3小时、错误页面error(但是我没有使用)
现在可以访问了一下我们的第一个测试路径了,http://localhost:8080/boot/
二、杂项配置
SpringBoot已经为我们自动配置的大部分的日常配置,还有一些自定义操作还是需要我们亲自动手。例如我们启动SpringBoot时候的console显现一个大大的Spring,又例如我们通过profile去控制当前运行环境等等。
1、配置SpringBoot的banner
配置SpringBoot的banner,我们在SpringBoot当中看的console输出可以通过在resource目录下创建banner.txt 在banner.txt中编写自己的banner。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.4.RELEASE)
当然如果我们不希望有BANNER的输出,也可以通过在main方法中将banner禁用:
public static void main(String[] args) { SpringApplication application = new SpringApplication(DemoApplication.class); application.setBannerMode(Banner.Mode.OFF); application.run(args); }
2、配置SpringBoot的Profile
Profile如果不熟悉的同学可以看看我之前的笔记: