Spring Boot 是由 Pivotal 团队开发的框架,其作用是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,简单理解就是springboot并不是什么新型的框架,而是整合了spring,springmvc等框架(通过spring boot starter项目管理其提供的所有依赖的版本),默认了很多配置,从而减少了开发者的开发时间。
以简单Maven为例,我们先导入Spring Boot依赖,如下代码块所示:
org.springframework.boot
spring-boot-starter-parent
1.5.10.RELEASE
java.version 指定jdk版本号:
1.8
添加spring-boot-starter-web依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
接下来创建一个启动类:
@SpringBootApplication
// @MapperScan("cn.itsource.dao")
public class startApp {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
再写一个测试的Controller:
//@RestController//只返回数据,不支持跳转页面
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello(Model model) throws Exception{
return "hello springboot!";
}
}
最后运行startApp主方法 ,并浏览器地址栏输入:http://localhost:8080/hello,若果页面显示了我们返回的数据“hello springboot!”,则代表测试成功!
通常在开发中,每次修改完代码后都要重启服务器或App,导致开发节奏缓慢,很麻烦,使用spring-boot-devtools来解决这个问题!
添加依赖包即可使用:
org.springframework.boot
spring-boot-devtools
true
使用Spring boot进行web方面的操作,如跳转页面等。
首先导入依赖:
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
true
org.apache.tomcat.embed
tomcat-embed-jasper
provided
org.springframework.boot
spring-boot-maven-plugin
配置yml文件
server:
port: 80 //服务端口
spring:
mvc:
view: //视图前后缀
prefix: /WEB-INF/jsp/
suffix: .jsp
创建测试Controller
//@RestController//只返回数据,不支持跳转页面
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello(Model model) throws Exception{
//return "hello springboot!";
model.addAttribute("hello","欢迎你");
return "hello";
}
}
创建一个跳转的jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
this helloJsp
${hello}
重新启动APP并在浏览器输入地址访问,跳转页面。
spring boot 不仅支持原生Jdbc,也支持Mybatis和JPA。
这里重点讲一下springboot与mybatis的使用。
引入相关依赖:
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.0
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.2
完善配置yml文件:
server:
port: 80
spring:
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
datasource: //数据源配置信息
url: jdbc:mysql://localhost:3306/springboot
username: root
password: root
driverClassName: com.mysql.jdbc.Driver
mybatis: //mybatis扫描包
type-aliases-package: cn.itsource.domain
mapperLocations: classpath:cn/itsource/dao/mapper/*.xml
编写一个Mapper,此处增加和查询使用注解方式
@Mapper //扫描此接口
public interface UserMapper {
@Insert("insert into t_user (name,pwd) values(#{name},#{pwd})")
void saveUser(User user);
@Select("select * from t_user where id=#{id}")
User getUser(Long id);
@Select("select * from t_user")
List getAllUser();
void deleteUser(Long id);
void updateUser(User user);
}
删除和修改使用配置Mapper.xml的方式
delete from t_user where id = #{id}
update t_user set name=#{name},pwd=#{pwd} where id = #{id}
在Service中实现分页
@Service
public class UserServiceImpl implements IUserService{
@Autowired
UserMapper userMapper; //注入mapper
@Override
public PageInfo getUsersByPage(Integer pageNum, Integer pageSize) {
//分页
PageHelper.startPage(pageNum, pageSize);
List allUser = userMapper.getAllUser();
PageInfo pageInfo = new PageInfo<>(allUser);
for (User user : pageInfo.getList()) {
System.out.println(user);
}
return pageInfo;
}
}
最终用一个Test类进行测试,注意数据库的变化。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = App.class)
public class UserTest {
@Autowired
UserMapper userMapper;
@Autowired
IUserService userService;
//保存
@Test
public void saveUser(){
User user = new User();
user.setName("zhang");
user.setPwd("zhang");
userMapper.saveUser(user);
}
//查询
@Test
public void getUser(){
System.out.println(userMapper.getUser(1L));
}
//删除
@Test
public void deleteUser(){
userMapper.deleteUser(3L);
}
//修改
@Test
public void updateUser(){
User user = userMapper.getUser(1L);
user.setName("ZHANG");
userMapper.updateUser(user);
}
//分页
@Test
public void userPage(){
userService.getUsersByPage(2, 2);
}
}