文章目录
- 一、登录页面请求处理
- 二、开发步骤
- 1.配置druid
- 2.配置mybatis-plus
- 三、效果演示
- 四、问题以及解析
前言
主要是测试数据库,负责发送给前端JSON数据,检查数据规范,学习新知识。
技术mybatis-plus,druid等,后续会更新很多。
项目目录
一、登录页面请求处理
前端发送请求,controller接收,并且访问底层
二、开发步骤
1.
代码如下(示例):config文件夹下新建DruidConfig
Druid简介
Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。
Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。
/*
将自定义的 Druid数据源添加到容器中,不再让 Spring Boot 自动创建
绑定全局配置文件中的 druid 数据源属性到 com.alibaba.druid.pool.DruidDataSource从而让它们生效
@ConfigurationProperties(prefix = "spring.datasource"):作用就是将 全局配置文件中
前缀为 spring.datasource的属性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名参数中
*/
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource() {
return new DruidDataSource();
}
//配置 Druid 监控管理后台的Servlet;
//内置 Servlet 容器时没有web.xml文件,所以使用 Spring Boot 的注册 Servlet 方式
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// 这些参数可以在 com.alibaba.druid.support.http.StatViewServlet
// 的父类 com.alibaba.druid.support.http.ResourceServlet 中找到
Map<String, String> initParams = new HashMap<>();
initParams.put("loginUsername", "admin"); //后台管理界面的登录账号
initParams.put("loginPassword", "123456"); //后台管理界面的登录密码
//后台允许谁可以访问
//initParams.put("allow", "localhost"):表示只有本机可以访问
//initParams.put("allow", ""):为空或者为null时,表示允许所有访问
initParams.put("allow", "");
//deny:Druid 后台拒绝谁访问
//initParams.put("kuangshen", "192.168.1.20");表示禁止此ip访问
//设置初始化参数
bean.setInitParameters(initParams);
return bean;
}
yml文件设置
#Spring Boot 默认是不注入这些属性值的,需要自己绑定
#druid 数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
2.配置mybatis-plus
部分代码
yml里:
mybatis-plus:
type-aliases-package: com.spc.shiwu.pojo
mapper-locations: classpath:com/spc/shiwu/mapper/*.xml
#日志
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
serviceImpl代码
@Autowired
private UserMapper userMapper;
@Override
public User login(String username, String password) {
//登录测试
HashMap<String, Object> map = new HashMap<>();
//数据库字段名,mybatis-plus会自动拼接
map.put("account",username);
map.put("password",password);
//因为返回的是list的数据,所以选择list里第一个user返回
List<User> users = userMapper.selectByMap(map);
return users.get(0);
}
controller页面
@RestController
@RequestMapping("/shiwu")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/login")
public String getHelloSpringBoot() {
//简单测试
User user = userService.login("979", "bhJNqaE9qb");
System.out.println(user.toString());
return user.toString();
}
}
效果演示
配置完毕后,我们可以选择访问 :http://localhost:8080/druid/login.html
平时在工作中,按需求进行配置即可,主要用作监控!
总结
出错的地方就是在controller页面,注解使用错误,导致页面404,哪怕进入方法后还是返回404
@Controller
@RestController
controller中@Controller注解后面需要添加@ResponseBody注解,
@RestController 注解相当于@ResponseBody + @Controller合在一起的作用,所以建议用这个。
第一篇博客,纪念一下!