Spring-Boot Spring的春天java
在以前咱们一直使用Spring、SpringMVC进行开发,的确,Spring让咱们认识到了项目开发原来能够这么方便。可是大量的配置文件倒是使人头痛的,即便咱们想写一个简单的请求映射并在浏览器上发送Get请求测试,那么须要:1.在web.xml中配置DispatcherServlet; 2.在application.xml中配置注解扫描、注解驱动。能够看到:虽然Spring是轻量级的,可是Spring的配置倒是重量级的。而且搭建每一个Spring项目咱们都须要考虑依赖版本是否冲突的问题...git
So,SpringBoot将这一切都解决了。SpringBoot提供了一种固定的、约定优于配置风格的框架,让开发者能更快的建立基于Spring的应用程序和服务。github
对应的SpringBoot整合Mybatis实现CRUD的项目和笔记请看个人Github仓库:教你优雅的入门Spring Boot框架web
若是以为不错就点击右上角star鼓励一下笔者吧(#^.^#)spring
SpringBoot有以下特性:数据库
这里我选择使用IDEA来建立SpringBoot项目:后端
1.选择Spring Initializr,并选择本地的JDK版本浏览器
2.Next,指定Group和Artifact名称,并选择本机JDK版本安全
3.选择项目所需依赖springboot
解释
devtools
: SpringBoot提供的热部署插件,能够避免每次修改代码都要从新启动项目。。
lomback
: 使用Lomback能够减小项目中不少重复代码的书写,好比getter/setter/toString等方法的书写(虽然这些可能咱们都是用的快捷键生成的代码)。具体用法能够参考博文:lomback介绍
Thymeleaf
: 语法的支持
注意: 以上依赖非必选,若是仅仅想尝试一下Spring Boot-HelloWorld,只须要选择其中的web
依赖便可。
<br/>
以上是新建立的Spring Boot项目。在SpringBoot中有一个启动器(引导类)的概念,咱们首先看一下SpringbootApplication.java
:
@SpringBootApplication public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } }
如上,仅是一个简单的main方法,其中最核心的就是@SpringBootApplication
注解,它是一下三个注解的总和:
@Configuration
: 用于定义一个配置类。@EnableAutoConfiguration
: SpringBoot会自动根据你的jar包依赖来自动配置项目。@ComponentSacn
: 告诉Spring哪一个packages的用注解标识的类会被Spring自动扫描而且转入Bean容器。经过以上三个注解你就应该了解到了SpringBoot的做用:自动化配置项目。以前咱们要手动进行的XML配置在这里仅须要这一个注解就完成了。且SpringBoot项目不须要单独部署到Tomcat中才能启动,经过这个启动器,SpringBoot会自动构建一个web容器,并将项目部署到其中。
So,
Run SpringBootApplication
发现报错,说DataSource
数据源的url地址没有配置。以前咱们提到了SpringBoot的特性就是自动化配置,它会根据你的依赖文件来配置项目,咱们再看一下咱们的pom.xml
:
其中最上层的<parent>
节点约束了整个下面全部spring-boot依赖的版本,即这里使用了SpringBoot-2.0.5。而后关注<dependencies>
节点下的前四个依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency>
Spring Boot应用启动器
spring-boot-starter
: Spring Boot的核心启动器,包含了自动配置、日志和YAML。
spring-boot-starter-jdbc
: 支持JDBC数据库。
spring-boot-starter-thymeleaf
: 支持Thymeleaf模板引擎,包括与Spring的集成。
spring-boot-starter-web
: 支持全栈式开发,包括Tomcat和Spring-WebMVC。
mybatis-spring-boot-starter
: 整合spring-mybatis依赖。
前面咱们强调的一点是Spring Boot能实现自动化配置,那么项目的依赖就决定了Spring Boot将如何自动配置项目,Spring Boot的启动器就决定了项目会以什么样的配置启动项目;如此,咱们会明白这个报错是为何了。
由于咱们配置配置JDBC链接的数据库,因此报错,注释掉spring-boot-starter-jdbc
和mybatis-spring-boot-starter
依赖,再次启动SpringBootApplication
:
启动成功。
在src/main/java/cn/tycoding/springboot/
下建立controller
文件夹并建立LoginController.java
类:
@RestController public class LoginController { @RequestMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password) { System.out.println("username:" + username + ", password:" + password); return null; } }
如上就完成了在SSM阶段一个最基本的SpringMVC Controller映射方法的书写,那么测试一下:
在浏览器上访问:
localhost:8080/login?username=tycoding&password=123
后端便可接收到username和password参数。
这时你会发现,SpringBoot内置的Web容器默认访问地址就是8080端口,若是想改变这个默认端口,修改src/main/resources/application.properties
:
server.port=8088
重启SpringbootApplication
,访问:localhost:8088/login?username=tycoding&password=123
在src/main/resources/application.properties
中添加配置:
url=http://www.tycoding.cn
在LoginController.java
中添加映射方法:
@RestController public class LoginController { @Autowired private Environment environment; @RequestMapping("/blog") public String login(){ return environment.getProperty("url"); } }
Spring提供的Environment
类用户读取配置文件中参数,访问:localhost:8088/blog
便可获得。
<br/>
若是你们有兴趣,欢迎你们加入个人Java交流技术群:671017003 ,一块儿交流学习Java技术。博主目前一直在自学JAVA中,技术有限,若是能够,会尽力给你们提供一些帮助,或是一些学习方法,固然群里的大佬都会积极给新手答疑的。因此,别犹豫,快来加入咱们吧!
<br/>
If you have some questions after you see this article, you can contact me or you can find some info by clicking these links.