刚刚开始学习使用 Spring Boot 做个学习笔记!
1 Spring Boot web项目搭建
Spring Boot 框架的核心就是自动配置,这意味着我们再也不用在spring海量的xml配置中煎熬了!只要有 jar 包 Spring Boot 就会帮我们自动配置,当然若是默认的配置不能满足我们的需求,Spring Boot 也是 允许我们使用自定义的配置的。当然 Spring Boot 优点并不只有自动配置,它还集成了内嵌的 web 服务器,同时它还提供了优秀的系统监控等许多有用的功能。总之一切与 Spring Boot 有关的就是一句话 化繁为简。它就代表着简单方便。
Spring Boot 项目搭建很简单:
Configure environment
- jdk1.8+
- maven 3.3+
- spirng-boot 1.5.2
- eclipse
开始搭建
在eclipse中,右键new => maven project
点击 next 进入下一步
选择 maven-archetype-quickstart 继续点击下一步
编辑项目组名别名点击 finish 完成项目创建。
项目目录:
pom.xml
添加 Spring Boot 的父pom依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/>
</parent>
设置jdk和项目编码格式
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
接下来添加Spring Boot web的依赖模型
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
搞定依赖之后需要创建一个 Appliction 的 java 类(在我的项目中是TestAppliction.java)此文件最好放在最顶层的包中,需要使用@SpringBootApplication 注解 类实现代码:
package com.boot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
最后我们就可以开始编写我们熟悉的 controller 了 :
package com.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping(value="/test",method=RequestMethod.GET)
public String getLove() {
return "hello world!";
}
}
最后运行TestApplication可以得到如下的结果:
此时项目已经启动成功 在浏览器中输入 localhost:8080/test 就可以看到 :
2 整合(Mybatis)MySQL
首先pom中引入依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
解决依赖之后就可以配置mysql的连接了在 src/mian/resources 下创建 application.properties 文件
mybatis.type-aliases-package=com.neo.entity
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/pmsystem?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.* 下面还有很多数据库连接的属性设置就不一一列出了。
Spring Boot 对于 Mybatis 同样支持两种dao层的方式 注解 和 xml。我今天就主要介绍xml 方式的编写
首先是它的配置在 application.properties 文件中加入下面两行,classpath 的根目录是在 src/main/resources 下面
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
mybatis-config.xml 是对 mybatis 的一些配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="Integer" type="java.lang.Integer" />
<typeAlias alias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap" type="java.util.HashMap" />
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
<typeAlias alias="ArrayList" type="java.util.ArrayList" />
<typeAlias alias="LinkedList" type="java.util.LinkedList" />
</typeAliases>
</configuration>
mapper 下面的所有 xml 就是我们 mybatis 的映射文件了 这些我就不贴出来了。不会的可以到mybatis的官网上面看看。上面有大量的 mybatis 例子。
我们需要在 TestApplication 类上面加入注解 @MapperScan
package com.boot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.neo.mapper")
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
最后是代码由于我是学习测试,因此在整合 mybatis 时并没有编写servies 层所有就贴一个 controller 的代码吧
package com.boot.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.neo.entity.Job;
import com.neo.mapper.JobMapper;
@RestController
public class TestController {
@Autowired
private JobMapper jobMapper;
@RequestMapping(value="/test",method=RequestMethod.GET)
public List<Job> getLove() {
List<Job> jobs = jobMapper.getJobs();
return jobs;
}
}
3 整合 mongoDB
老规矩先添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
在 application.properties 文件中加入如下配置
spring.data.mongodb.uri=mongodb://adminUser:adminPass@localhost:27017/?authSource=admin&authMechanism=SCRAM-SHA-1
spring.data.mongodb.database=users
我的 mongodb 设置了管理员权限因此需要用户名密码还有权限
@Component注解用于dao层实现类上
好了下面是dao层实现类代码
package com.boot.mgdao.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import com.boot.mgdao.UserDao;
import com.neo.entity.User;
@Component
public class UserDaoImpl implements UserDao {
@Autowired
private MongoTemplate mongoTemplate;
@Override
public void saveUser(User user) {
mongoTemplate.save(user);
}
@Override
public List<User> getUsers() {
return mongoTemplate.findAll(User.class);
}
}
services层实现类代码
package com.boot.mgservies.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.boot.mgdao.UserDao;
import com.boot.mgservies.UserServies;
import com.neo.entity.User;
@Service
public class UserServiesImpl implements UserServies {
@Autowired
private UserDao userDao;
@Override
public void saveUser(User user) {
userDao.saveUser(user);
}
@Override
public List<User> getUsers() {
return userDao.getUsers();
}
}
controller 代码
package com.boot.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.boot.mgservies.UserServies;
import com.neo.entity.Job;
import com.neo.entity.User;
import com.neo.mapper.JobMapper;
@RestController
public class TestController {
@Autowired
private JobMapper jobMapper;
@Autowired
private UserServies userServies;
@RequestMapping(value="/test",method=RequestMethod.GET)
public List<Job> getLove() {
List<Job> jobs = jobMapper.getJobs();
return jobs;
}
@RequestMapping(value="/testmg",method=RequestMethod.GET)
public List<User> getUsers() {
List<User> users = userServies.getUsers();
return users;
}
}
好了以后学习新的 Spring Boot 相关东西我会继续写新的记录
最后把我学习 Spring Boot 写的小 demo 放上来
https://github.com/TomatoesLoveEggplant/SpringBoot-Test