SpringBoot
不管你前面有没有学过Spring Framework,从这篇文章开始你将进入另一个Spring家族的成员SpringBoot。
关于SpringBoot
SpringBoot是什么?SpringBoot能干什么?来看看官方文档是怎么说的。
翻译后再加上我的理解:它是GitHub上的一个开源框架,SpringBoot使创造一个独立的,生产级别的应用变得更加简单。
听起来就很棒吧,有学过spring framework的同学可以立刻感觉进入了一个更简洁的开发,没有学过spring framework的同学也能很快的搭建出spring boot的项目!那接下来就让我们来实践实践吧!
创建SpringBoot的两种方式
用Maven搭建
1.创建一个maven工程名为springboot(前面创建步骤就不说了,毕竟学到springboot了基础的maven搭建大家都会)
2.在pom中添加父依赖管理(不懂的可以去看看Maven的知识,不过这不影响使用),这样就算是有spring boot的环境了!
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent>
3.添加spring boot的web启动器依赖(现先搭建一个web工程)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
可以看到,添加后的依赖应有尽有,当然spring的一些jar和一些常用的插件都在里边了(由于空间限制,下边的不能展开),并且内部处理过版本冲突。
4.在java下创建一个com.wrial.BootDemo的类,编写main函数。
package com.wrial;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BootDemo {
public static void main(String[] args) {
SpringApplication.run(BootDemo.class,args);
}
}
5.启动,会发现大大的logo,并且发现服务器已经运行起来了。
6.访问locallhost:8080,虽然是404,但是足以说明问题说明我们的MVC项目已经搭建成功了。
7.分析,从下图的加载日志可以很直观的看到端口号路径等配置信息,并且学过ssm的小伙伴有没有发现这里的好多配置我们以前都用手动的配置,如编码过滤器,servlet核心配置,还有我们以前手动写过的异常拦截器等等。SpringBoot已经在内部帮我们实现了这些繁琐的配置。
8.看了404不过瘾,是不是心里还有些疑惑,到底行不行啊,别急,接下来就创建一个Controller,我用来测试就写在刚刚那个包下。
知识点:RestController注解等价于Controller+ResponseBody。
package com.wrial;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
//@RestController
@Controller
public class WebBootDemo {
@GetMapping("/hello")
@ResponseBody
public String hello(){
return "魏某某男神!";
}
}
启动项目来共同见证奇迹的来临!
还有一个很好玩的地方可以判断,这个还自带皮肤的!有点帅。
用SpringBoot的自动搭建
springboot的自动搭建这个就很方便了
网站 进入
1.可以在这里创建你的项目(通用配置),右边可以查找你想要的依赖。
2. 如果需要自己挑选进行特定配置,可以点击下方图片红色区域
然后往下翻会看到很多很多的配置(配置太多只能展示局部)
是不是特别快捷而且还能省去不需要的依赖!(仅适合老司机哦,萌新还是用默认的吧)
然后就会生成一个项目用编译器打开就可以用了哈!!!
一些疑问?
在我们以前的ssm项目中的讲解中,有说过当时对于那些不是自己写的类不能用注解配置,但是那只是spring2的事了,现在已经spring5,当然就会有其他方式来代替xml配置文件。因为springboot不可能满足一些人为控制的一些配置。Springboot就在这个基础上加上自己的优化,使配置更优雅(下次讲)。
那下面就展示一个数据库连接池的例子吧:
1.新建一个jdbc.properties文件
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/Mybatis
jdbc.username=root
jdbc.password=wrial.qq.com
2.使用java代码来代替xml配置
package com.wrial;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
@Configuration
@PropertySource("classpath:jdbc.properties")
public class DBConfig {
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driverClassName);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
return druidDataSource;
}
}
3.在环境中使用(我们只看效果,不做具体演示了),将datasource属性注入到WebBootDemo中,然后Debug设置断点查看dataSource的注入情况。
package com.wrial;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.sql.DataSource;
@Controller
public class WebBootDemo {
@Autowired
private DataSource dataSource;
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "魏某某男神!";
}
}
4.访问localhost:8080/hello
可以发现我们的属性已经注入进去了!说明数据源配置成功了!