Spring boot
Spring Boot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。
两大特性:
- 开箱即用
- 约定优于配置
快速上手
-
使用maven创建spring boot项目
点击finish以后,修改pom.xml
文件即可。此处用的SpringBoot的版本为2.1.0.RELEASE版本,建议直接使用2.0以上版本。在附录可以看到SpringBoot对应spring-framework的版本。<!--此处为所有Springboot组件的基础引用--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> </parent> <dependencies> <!-- 提供web支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!--打包--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
更新完依赖以后,这里就可以写个demo进行测试了。
@Controller @RequestMapping("/demo") public class DemoController { @ResponseBody @RequestMapping("/test") public String test(){ return "Hello Spring Boot"; } }
如果你已经做过
SpringMVC
的项目,从DemoController
的代码,可以看到这里面的代码其实都是一样的。Spring Boot在大多数情况下只是帮我们完成自动构建,底层的相关配置。区别就是你需要在
controller
文件夹的上层目录中新建一个启动类,作为程序的入口。此处的启动类的目录位置是有讲究的,将启动类创建在controller
文件夹的上层目录中,这样在项目启动的过程中,会自动扫描启动类所在的文件目录和该目录下的所有子目录,这样一来,你的controller
,service
等文件夹均会扫描到。这点就代替了原来SpringMVC项目在xml文件夹中配置的扫描包的路径。@SpringBootApplication public class MySpringBootApplication { public static void main(String[] args) { //启动Spring Boot,并初始化相关配置 SpringApplication.run(MySpringBootApplication.class); } }
那么启动类的命名规范一般为:项目名称+Application。
这个时候我们就直接运行MySpringBootApplication
的main
方法即可验证。
这里便是运行成功了。接下来我们之间去浏览器验证即可。
-
使用Spring Initializr创建
有了上面使用maven
创建SpringBoot的例子,我们还可以更加方便的创建。
这里根据你自己的需要,选中即可,这里因为Spring Boot的版本,有些依赖的版本不支持是无法选中的。当然你这里有些在创建的初期没有选中也无需担心,后续在使用中直接在pom.xml
中添加依赖。
完成以后,你只需要在启动类的目录下新建controller文件夹并写demo运行。因为架子已经帮你创建完成。
呐,直接运行启动类 验证。
约定
- 静态资源,放入
/resource/static
- 前端页面等,放入
/resource/templates
- Spring boot的配置文件可以是properties文件,也可以是yml文件。文件名:
application
。比如:application.yml
或者application.properties
补充
关于Spring Boot项目的启动类,刚在使用maven
创建项目的时候已经提到过的。
- 启动类的名称约定:项目名称 +
Application
- 启动类添加
@SpringBootApplication
注解,该注解会自动扫描可以被注入的类。所以也解释了为啥启动类的目录位置。这样一来,但凡在启动类的目录及下级目录中,带有@Controller
,@Service
,@Repository
,@Component
等等注解的类,均会被扫描到。有兴趣的可以去搜一下@SpringBootApplication
的介绍,这里就不多说了。
如果你是使用的官方的脚手架创建的Spring Boot 项目。就避免了一些问题。这里建议直接使用。
修改端口: