SpringBoot之路(—)
一直在用Springboot做项目,但是像是赶鸭子上架一样,并没有系统的从头到一个项目来创建一个应用,最近打算做一个SpringBoot开箱即用的项目,主要是觉得自己很菜,对于SpringBoot仅仅停留在会用的阶段,所以想从零开始做一个想加强一下自己的理解。(其实就是菜)后期打算用Vue和SpringBoot项目做一个前后端分离的项目,Ui打算采用iView,用惯了Element想换种风格~但其实都差不多啦。
创建一个SpringBoot应用
本章就来介绍两种方式来创建一个SpringBoot项目,根据Sping BOot官方文档的推荐,填好信息后可以下载一个Zip文件,然后解压,在idea导入就好了
Sping Initializr来创建,如下图Web、MySQL、Mybatis,然后下一步就可以了。(没有连接数据库的话需要把pom.xml中的MySQL先注释掉不然启动会报错)DemoApplication这个是SpingBoot的启动类,其中@SpringBootApplication是一个配置类注解,它的作用像是@Configuration,@EnableAutoConfiguration,@ComponentScan这些注解的组合,@Configuration的作用是允许注册额外的beans,@ComponentScan的作用是启动组件扫描,@EnableAutoConfiguration作用是启动Sping Boot的自动配置。然后我们新建一个
Controller加上@RestController注解,@RestController注解在我们前后端分离开发中非常方便,因为我们目前的最好的是后端返回JSON数据然后给前台来解析,当你使用了之后会发现非常之方便~然后我们用
PostMan来测试启动下,header中选择{key:Content-Type,value:application/json},body中选择raw模式,然后发送请求,可以看到hello,world就给我们返回来了。
整合Mybatis连接数据库
SpingBoot整合Mybatis也非常简单只需要在pom文件中加入
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
整合Mysql:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
然后我们到application.properties中配置下连接数据库的驱动这些
#连接MySQL
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
然后新建一个mybatis的配置类:MybatisConfigurer
@Configuration
public class MybatisConfigurer {
@Bean
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(dataSource);
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
factory.setMapperLocations(resolver.getResources("classpath:/Mapper/**/*Mapper.xml"));
return factory.getObject();
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
mapperScannerConfigurer.setBasePackage("com.ywbjja.demo");
return mapperScannerConfigurer;
}
}
在配置文件中配置了Mapper.xml的地址,Spring Boot会根据我们配置的地址去目录下寻找Mapper.xml文件,记得大小写别错了。
在数据库中创建一个User表
CREATE TABLE `demo`.`user` (
`user_id` BIGINT NOT NULL,
`user_name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`user_id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '用户表';
然后添加一条数据测试:
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/getUser")
public User getUser(@RequestBody Map<String ,Object> map){
return userService.queryUserById(map);
}
}
在这里推荐是用Map作为参数,这样很节省代码量,然后使用postman测试就会有结果了。
0配置整合Mybatis
是不是觉得新建一个MybatisConfigurer很麻烦?没问题,这里推荐使用第二种方法就是0配置使用注解实现整合Mybatis,首先在Sping Boot的启动类加入@MapperScan注解这个注解的作用就是会扫描这个目录下的Mapper接口
@SpringBootApplication
@MapperScan(value = "com.ywbjja.demo")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
然后再配置文件中配置mapper.xml文件地址
mybatis.mapper-locations=classpath*:Mapper/**/*Mapper.xml
这样一样也能成功,省去了配置类,很方便了。好了到此就结束了,如果有错误的地方欢迎来喷我!!大声的喷我!!!谢谢…
下一节打算说下SpringBoot统一返回对象以及异常的处理~