注:本文讲述的所有代码均可在微信公众号“最高权限比特流”中回复4获取
SpringBoot是一种微服务框架。
何为微服务框架?
在解释微服务框架前,我们需要先拆分一下SpringBoot这个单词。Spring作为java程序猿的我们,应当是颇为熟悉了。Spring意为春天,程序猿的春天。其强大的IOC容器,为我们的开发提供了便捷。而在开发过程中,我们通常使用SSM框架整合,即经典的MVC模型。
使用过SSM开发的小伙伴一定知道,SSM整合需要配置各种各样的XML,虽然不用刻意去记忆,但是很繁琐,如果配置文件有问题,就会出现各种稀奇古怪的问题。
所以有了boot,提供快速的应用开发。使用Springboot,我们可以省去繁琐的配置文件,只需要简单的开箱即可使用,配合Maven使用更佳。
现在再来说微服务框架。微服务并没有确定的定义,我们只需要知道Springboot是由一个个模块(组件)组合而成的即可,它具有极强的灵活性。
首先要声明一点,开发工具全凭个人习惯,无论是idea还是eclipse都可以,这点不必过分纠结。只是对于我而言,IDEA用起来更为习惯。
好了,废话不多说,开始正式配置。
1.创建Maven项目
Maven用于构建项目。Gradle也可以。
流程如下:File->new->project
选择Maven中的quickstart,如下图所示。
然后一路next输入相关的信息。最后点击finish,等待Maven项目的构建。
删除无用的包,创建缺少的包,构建后的目录结构如下图所示。
1.添加构建Springboot所需要的依赖,由于我们是使用Maven构建的项目,所以打开pom.xml,在xml结构根目录中添加parent结点。
spring-boot-starter-parent
org.springframework.boot
2.0.6.RELEASE
这段是直接声明springboot以及相关所有依赖的版本,这样就不会因各包版本冲突而导致的错误。
2.接着添加springboot的mvc依赖,以及前端thymeleaf的依赖。
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-thymeleaf
//这里注意,一定要引入springboot的thymeleaf,而不是直接引thymeleaf
3.编写sprinboot的启动类MainApplication,由于springboot直接内置了Tomcat以及jetty,就无需我们手动配置Tomcat了。
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(MainApplication.class,args);
}
}
4.创建controller类SampleController
@Controller
@RequestMapping("/demo")
public class SampleController {
@RequestMapping("/thymeleaf")
public String thymeleaf(Model model) {
model.addAttribute("name","roobtyan");
return "hello";
}
}
5.在resources目录中新建application.properties,即Springboot配置文件
配置thymeleaf
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
6.在resources目录中创建模板目录template,并创建html页面:
hello
7.启动MainApplication,在浏览器中输入localhost:8080/demo/thymeleaf,如果输出hello:roobtyan,则证明springboot+thymeleaf整合成功,如下图。
springboot整合mybatis相当简单,没必要像整合SSM那么复杂。我们只需要在application.properties中添加如下信息。
#mybatis配置
#实体类配置
mybatis.type-aliases-package=com.roobtyan.project.pojo
#驼峰式支持
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.default-fetch-size=100
#连接延迟
mybatis.configuration.default-statement-timeout=3000
#mapper.xml所在位置
mybatis.mapper-locations=classpath:com/roobtyan/dao/*.xml
此外,为了高效实用mysql数据库,所以我们需要使用数据库连接池。
现在流行的数据库连接池是druid,由阿里巴巴开发的十分强大的数据库连接池。当然你也可以用C3P0或者DBCP。
spring.datasource.url=jdbc:mysql://localhost:3306/template?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
测试:在数据库中创建数据库template,在template数据库中创建数据表user,user中的对象为id(int)、username(varchar)、password(varchar)
在pojo包中创建User对象:
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在dao中创建UserMapper
@Mapper
public interface UserMapper {
@Select("select * from user where id = #{id}")
User getUserById(@Param("id") int id);
@Insert("insert into user (id,username,password) value( #{id}, #{username},#{password})")
void insertUser(User user);
}
在service中创建UserService
@Service
public class UserService {
private UserMapper userMapper;
@Autowired
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public User getUserById(int id) {
return userMapper.getUserById(id);
}
}
在SampleController中编写:
// 数据库测试
/**
* 从数据库中获取内容
* 声明@ResponseBody的原因是我们需要接收输出的json数据
*
* @return
*/
@RequestMapping("/dbGet")
@ResponseBody
public Result dbGet() {
User userById = userService.getUserById(1);
return Result.success(userById);
}
启动MainApplication,调用Controller,在浏览器访问:localhost:8080/demo/dbGet
如果出现数据库中的数据的json对象,即证明整合成功。
我们在实际的开发过程中,经常会用到redis,如果你需要redis的整合,就给我留言吧!
最后,如果你喜欢这篇文章,请关注微信公众号:“最高权限比特流”。
如果你需要整合的完整代码,请在公众号中回复“4”获取。