SpringBoot框架 — 初始SpringBoot
1.搭建SpringBoot
-
使用idea快速搭建spring boot框架
选择需要的依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <!-- p6spy --> <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.0</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- 热部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency>
-
创建测试代码
主程序类
/** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootApplication @MapperScan("com.aaron.mapper") public class HelloWorldMainApplication { public static void main(String[] args) { SpringApplication.run(HelloWorldMainApplication.class,args); } }
mapper层
@Repository public interface UserMapper { List<User> findUser(); }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.accp.mapper.UserMapper"> <select id="findUser" resultType="User"> SELECT id,userCode,userName,userPassword,birthday FROM smbms_user </select> </mapper>
service层
@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> findUser(){ return userMapper.findUser(); } }
controller层
@RestController @RequestMapping("user") public class UserController { @Autowired private UserServiceImpl userService; //GetMapping:发送一个get请求路径 @GetMapping("findUser") public List<User> findUser() { return userService.findUser(); } }
-
配置application.yml
#设置端口号 server: port: 8088 spring: #MYSQL连接信息 datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver url: jdbc:p6spy:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root hikari: idle-timeout: 6000 maximum-pool-size: 50 minimum-idle: 10 #时间格式化 jackson: date-format: yyyy-MM-dd #mybatis配置: mybatis: type-aliases-package: com.accp.pojo mapper-locations: classpath:mapper/*.xml
2.SpringBoot中常用的一些注解
- @SpringBootApplication 包含三个注解:@Configuration、@EnableAutoConfiguration、@ComponentScan
- @Mapper:用于标注数据访问组件 即用在 Mapper接口层 它是mybatis的注解,Mapper不需要配置扫描地址
- @Repository:用于标注数据访问组件 即用在 Mapper/Dao 接口层 它是spring的注解,需要在Spring中配置扫描地址
- @Service:用于标注业务层
- @RestController:用于标注控制层组件,包含@Controller和@ResponseBody
- @MapperScan:通过此注解指定Mapper接口路径
3.SpringBoot权限控制
public class LoginHandlerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//获取用户是否登录,如果没有登录则带着提示消息回到登录页面
Object user = request.getSession().getAttribute("user");
if (user==null){
request.setAttribute("msg","没有权限请先登录");
request.getRequestDispatcher("login.html").forward(request,response);
return false;
}else {
return true;
}
}
}