android系统定制开发一个完整的springboot项目所需要导入的依赖合集(方便查找)

一、springbootandroid系统定制开发启动类依赖:

  1. <!--springbootandroid系统定制开发启动类依赖导入-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter</artifactId>
  5. </dependency>

二、springbootandroid系统定制开发测试类依赖:

  1. <!--springboot测试依赖-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-test</artifactId>
  5. </dependency>

三、-plus依赖:

  1. <!--mybatis-plus依赖-->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.4.0</version>
  6. </dependency>

四、依赖(android系统定制开发用来简化对类的操作包括:set、getandroid系统定制开发以及构造函数等,只需要 一个注解)

  1. <!--lombok依赖-->
  2. <dependency>
  3. <groupId>org.projectlombok</groupId>
  4. <artifactId>lombok</artifactId>
  5. </dependency>

导入lombokandroid系统定制开发依赖后还需要进行一步操作,下载lombok插件,方法:点击File—>Setting—>Plugins

android系统定制开发然后再搜索Lombok,安装插件即可。

五、mysql连接所需要的依赖:

  1. <!--mysql依赖-->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. </dependency>

导入了mysql依赖后需要连接数据库,在application.配置文件中配置连入数据库的参数,url:跟自己数据库的地址,我的数据库名字为mybats-plus,driver后面不变,username和password填上自己数据库的名字和密码即可连接。

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/mybatis-plus?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
  4. driver-class-name: com.mysql.cj.jdbc.Driver
  5. username: root
  6. password: huyannan*****

六、配置日志,查看sql输出日志(在application.yaml配置文件中配置)

  1. mybatis-plus:
  2. configuration:
  3. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

七、 项目启动报错“javax.xml.bind.DatatypeConverter(jdk9以上版本)

这是由于java版本过高,之前java 8及以前的版本是默认包含jaxb-api包的,但是升级后的版本就需要手动来导入这个包了。所以找到pom.xml文件,然后在里边添加如下依赖

  1. <!--解决Handler dispatch failed;nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter-->
  2. <!--以下javax.xml.bind依赖是因为jdk版本不同需要导入的依赖-->
  3. <dependency>
  4. <groupId>javax.xml.bind</groupId>
  5. <artifactId>jaxb-api</artifactId>
  6. <version>2.3.0</version>
  7. </dependency>
  8. <dependency>
  9. <groupId>com.sun.xml.bind</groupId>
  10. <artifactId>jaxb-impl</artifactId>
  11. <version>2.3.0</version>
  12. </dependency>
  13. <dependency>
  14. <groupId>com.sun.xml.bind</groupId>
  15. <artifactId>jaxb-core</artifactId>
  16. <version>2.3.0</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>javax.activation</groupId>
  20. <artifactId>activation</artifactId>
  21. <version>1.1.1</version>
  22. </dependency>

八、redis依赖:

  1. <!--redis依赖-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-redis</artifactId>
  5. </dependency>

九、fastjson依赖 :可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象

  1. <!--fastjson依赖-->
  2. <dependency>
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>fastjson</artifactId>
  5. <version>1.2.33</version>
  6. </dependency>

十、jwt依赖

  1. <!--jwt依赖-->
  2. <dependency>
  3. <groupId>io.jsonwebtoken</groupId>
  4. <artifactId>jjwt</artifactId>
  5. <version>0.9.1</version>
  6. </dependency>

十一、打包跳过测试

  1. <!--打包跳过测试-->
  2. <plugin>
  3. <groupId>org.apache.maven.plugins</groupId>
  4. <artifactId>maven-surefire-plugin</artifactId>
  5. <version>2.5</version>
  6. <configuration>
  7. <skip>true</skip>
  8. </configuration>
  9. </plugin>

细节配置

设置主键自动增长:

        1、需要在创建数据表的时候设置主键自增。

        2、实体字段中配置@TableId(value = "id",type = IdType.AUTO)

  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. public class User {
  5. @TableId(value = "id",type = IdType.AUTO)
  6. private Long Id;
  7. private String Name;
  8. private Integer Age;
  9. private String Email;
  10. }

添加自动填充功能: 

1、在里面对需要自动填充的属性字段添加注解。

  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. public class User {
  5. //@TableId(value = "id",type = IdType.AUTO)
  6. //可以不用设置字段自动增长,mybatis-plus自带雪花算法
  7. private Long id;
  8. private String name;
  9. private Integer age;
  10. private String email;
  11. @TableField(fill = FieldFill.INSERT)
  12. private Date createTime;
  13. @TableField(fill = FieldFill.INSERT_UPDATE)
  14. private Date updateTime;
  15. }

2、自定义实现类 MyMetaObjectHandler,实现MetaObjectHandler接口,实现接口里面的方法

  1. package com.hu.mybatisplus01.handler;
  2. import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  3. import org.apache.ibatis.reflection.MetaObject;
  4. import java.util.Date;
  5. @Component
  6. public class MyMetaObjectHandler implements MetaObjectHandler {
  7. /**
  8. * 使用mybatis-plus进行添加操作时,会自动执行这个方法
  9. * @param metaObject
  10. */
  11. @Override
  12. public void insertFill(MetaObject metaObject) {
  13. this.setFieldValByName("createTime",new Date(),metaObject);
  14. this.setFieldValByName("updateTime", new Date(), metaObject);
  15. }
  16. /**
  17. * 使用mybatis-plus进行更新操作时,会自动执行这个方法
  18. * @param metaObject
  19. */
  20. @Override
  21. public void updateFill(MetaObject metaObject) {
  22. this.setFieldValByName("updateTime",new Date(),metaObject);
  23. }
  24. }

添加乐观锁功能(防止丢失更新,一般只有在并发操作下发生): 

1、在数据库中添加version字段。

2、在实体类中添加version字段并在该字段上添加@Version注解。

  1. public class User {
  2. //@TableId(value = "id",type = IdType.AUTO)
  3. //可以不用设置字段自动增长,mybatis-plus自带雪花算法
  4. private Long id;
  5. private String name;
  6. private Integer age;
  7. private String email;
  8. @TableField(fill = FieldFill.INSERT)
  9. private Date createTime;
  10. @TableField(fill = FieldFill.INSERT_UPDATE)
  11. private Date updateTime;
  12. @Version
  13. private Integer version;
  14. }

3、配置乐观锁插件,创建一个config配置包,在包下新建一个MybatisPlusConfig配置类。

  1. package com.hu.mybatisplus01.config;
  2. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
  3. import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
  4. import org.mybatis.spring.annotation.MapperScan;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. @Configuration
  8. @MapperScan("com.hu.mybatisplus01.mapper")
  9. public class MybatisPlusConfig {
  10. /**
  11. * 乐观锁插件
  12. * @return
  13. */
  14. @Bean
  15. public MybatisPlusInterceptor mybatisPlusInterceptor() {
  16. MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
  17. mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
  18. return mybatisPlusInterceptor;
  19. }
  20. }

 4、为了方便version字段值的插入,可以设置自动填充,方法同createTime字段设置类似,在version字段上添加@TableField(fill = FieldFill.INSERT)注解,然后在类 MyMetaObjectHandler中配置填充条件。 

配置分页查询功能:

        在MybatisPlusConfig配置类中添加分页插件,这是新版的,因为从MyBatis-Plus 3.4.0开始,不再使用旧版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor

  1. public class MybatisPlusConfig {
  2. @Bean
  3. public MybatisPlusInterceptor mybatisPlusInterceptor() {
  4. MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
  5. //乐观锁插件
  6. mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
  7. //添加分页插件
  8. mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  9. return mybatisPlusInterceptor;
  10. }
  11. }

配置逻辑删除插件: 

1、在数据库中添加deleted字段。字段属性为boolean。

2、在实体类中添加deleted字段并加上@TableLogic 和@TableField(fill = FieldFill.INSERT)注解。

3、在application.yaml配置文件中配置逻辑删除默认值。

  1. mybatis-plus:
  2. global-config:
  3. db-config:
  4. logic-delete-value: 1 # 逻辑已删除值(默认为 1)
  5. logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

代码生成器使用:

1、添加pom依赖

  1. <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
  2. <dependency>
  3. <groupId>org.apache.velocity</groupId>
  4. <artifactId>velocity-engine-core</artifactId>
  5. <version>2.0</version>
  6. </dependency>
  7. <!--mybatis-plus代码生成器-->
  8. <dependency>
  9. <groupId>com.baomidou</groupId>
  10. <artifactId>mybatis-plus-generator</artifactId>
  11. <version>3.4.0</version>
  12. </dependency>

2、mybatis3.5.1以下版本使用

  1. package com.hu.demo;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import com.baomidou.mybatisplus.annotation.IdType;
  4. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  5. import com.baomidou.mybatisplus.generator.AutoGenerator;
  6. import com.baomidou.mybatisplus.generator.config.*;
  7. import com.baomidou.mybatisplus.generator.config.rules.DateType;
  8. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  9. import org.junit.Test;
  10. // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
  11. public class CodeGenerator {
  12. @Test
  13. public void run() {
  14. // 代码生成器
  15. AutoGenerator mpg = new AutoGenerator();
  16. // 全局配置
  17. GlobalConfig gc = new GlobalConfig();
  18. String projectPath = System.getProperty("user.dir");
  19. gc.setOutputDir(projectPath + "/src/main/java");
  20. gc.setAuthor("胡雁南");
  21. gc.setOpen(false);
  22. gc.setServiceName("%sService");//去掉Service接口的首字母I
  23. gc.setIdType(IdType.ID_WORKER_STR);
  24. gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
  25. gc.setSwagger2(true);// 实体属性 Swagger2 注解
  26. mpg.setGlobalConfig(gc);
  27. // 数据源配置(改成自己的数据库 )
  28. DataSourceConfig dsc = new DataSourceConfig();
  29. dsc.setUrl("jdbc:mysql://localhost:3306/mybatis-plus?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8");
  30. // dsc.setSchemaName("public");
  31. dsc.setDriverName("com.mysql.cj.jdbc.Driver");
  32. dsc.setUsername("root");
  33. dsc.setPassword("huyannan");
  34. dsc.setDbType(DbType.MYSQL);
  35. mpg.setDataSource(dsc);
  36. // 包配置
  37. PackageConfig pc = new PackageConfig();
  38. pc.setParent("com.hu");//com.hu
  39. pc.setModuleName("eduservice");//模块名;;com.hu.eduservice
  40. //包com.hu.eduservice.controller
  41. pc.setController("controller");
  42. pc.setEntity("entity");
  43. pc.setService("service");
  44. pc.setMapper("mapper");
  45. mpg.setPackageInfo(pc);
  46. // 策略配置
  47. StrategyConfig strategy = new StrategyConfig();
  48. strategy.setInclude("edu_teacher");//具体表
  49. strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
  50. strategy.setTablePrefix(pc.getModuleName() + "_");//生成实体时去掉表前缀
  51. strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
  52. strategy.setEntityLombokModel(true);//Lombok模型
  53. strategy.setRestControllerStyle(true);//restful api风格控制器
  54. strategy.setControllerMappingHyphenStyle(true);//url中驼峰转连字符
  55. mpg.setStrategy(strategy);
  56. mpg.execute();//执行
  57. }
  58. }

配置统一返回的json格式,在application.yaml配置文件中设置:

  1. #返回json的全局时间格式
  2. spring:
  3. jackson:
  4. date-format: yyyy-MM--dd HH:mm:ss
  5. time-zone: GMT+8

建立统一返回结果集:

创建一个utils工具包,在包下建立ResultCode接口和R类,ResultCode接口中配置返回结果码常量,R类用来封装统一返回结果集。

ResultCode代码

  1. package com.hu.utils;
  2. public interface ResultCode {
  3. Integer SUCCESS=20000;//成功
  4. Integer ERROR=20001;//失败
  5. }

R类代码

  1. package com.hu.utils;
  2. import io.swagger.annotations.ApiModelProperty;
  3. import lombok.Data;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. @Data
  7. public class R {
  8. @ApiModelProperty(value = "是否返回成功")
  9. private Boolean success;
  10. @ApiModelProperty(value = "返回码")
  11. private Integer code;
  12. @ApiModelProperty(value = "返回消息")
  13. private String message;
  14. @ApiModelProperty(value = "返回数据")
  15. private Map<String, Object> data = new HashMap<String, Object>();
  16. private R(){}//构造方法私有化,使外部不能实例化
  17. //成功静态方法
  18. public static R ok(){
  19. R r = new R();
  20. r.setSuccess(true);
  21. r.setCode(ResultCode.SUCCESS);
  22. r.setMessage("成功");
  23. return r;
  24. }
  25. //失败静态方法
  26. public static R error(){
  27. R r = new R();
  28. r.setSuccess(false);
  29. r.setCode(ResultCode.ERROR);
  30. r.setMessage("失败");
  31. return r;
  32. }
  33. //实现链式编程
  34. public R success(Boolean success){
  35. this.setSuccess(success);
  36. return this;
  37. }
  38. public R message(String message){
  39. this.setMessage(message);
  40. return this;
  41. }
  42. public R code(Integer code){
  43. this.setCode(code);
  44. return this;
  45. }
  46. public R data(String key,Object value){
  47. this.data.put(key, value);
  48. return this;
  49. }
  50. public R data(Map<String,Object>map){
  51. this.setData(map);
  52. return this;
  53. }
  54. }

统一异常处理:

        在handler处理包下新建一个 GlobalExceptionHandler全局异常统一处理配置类,若有异常前端不会直接提示500错误。

(1)全局异常处理。

  1. package com.hu.handler;
  2. import com.hu.utils.R;
  3. import org.springframework.web.bind.annotation.ControllerAdvice;
  4. import org.springframework.web.bind.annotation.ExceptionHandler;
  5. import org.springframework.web.bind.annotation.ResponseBody;
  6. @ControllerAdvice
  7. public class GlobalExceptionHandler {
  8. @ResponseBody//为了能够返回数据
  9. //指定出现什么异常执行这个方法
  10. @ExceptionHandler(Exception.class)
  11. public R error(Exception e){
  12. e.printStackTrace();
  13. return R.error().message("执行了全局异常处理");
  14. }
  15. }

(2)特定异常

  1. package com.hu.handler;
  2. import com.hu.utils.R;
  3. import org.springframework.web.bind.annotation.ControllerAdvice;
  4. import org.springframework.web.bind.annotation.ExceptionHandler;
  5. import org.springframework.web.bind.annotation.ResponseBody;
  6. @ControllerAdvice
  7. public class GlobalExceptionHandler {
  8. //特定异常
  9. @ResponseBody//为了能够返回数据
  10. @ExceptionHandler(ArithmeticException.class)
  11. public R error(ArithmeticException e){
  12. e.printStackTrace();
  13. return R.error().message("执行了ArithmeticException异常处理");
  14. }
  15. }

(3)自定义异常

第一步先创建自定义的异常类继承RuntimeException。

  1. package com.hu.handler;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. @Data
  6. @AllArgsConstructor
  7. @NoArgsConstructor
  8. public class CustomException extends RuntimeException{
  9. private Integer code;//状态码
  10. private String msg;//异常信息
  11. }

第二步在统一异常类GlobalExceptionHandler中添加规则。

  1. package com.hu.handler;
  2. import com.hu.utils.R;
  3. import org.springframework.web.bind.annotation.ControllerAdvice;
  4. import org.springframework.web.bind.annotation.ExceptionHandler;
  5. import org.springframework.web.bind.annotation.ResponseBody;
  6. @ControllerAdvice
  7. public class GlobalExceptionHandler {
  8. //自定义异常
  9. @ResponseBody//为了能够返回数据
  10. @ExceptionHandler(CustomException.class)
  11. public R error(CustomException e){
  12. e.printStackTrace();
  13. return R.error().code(e.getCode()).message(e.getMsg());
  14. }
  15. }

配置阿里云的OSS云存储服务。

官方教程:

博主仅仅配置了一个文件上传的功能,用来修改和保存头像的。

第一步配置依赖:

  1. <!--阿里云oss依赖-->
  2. <dependency>
  3. <groupId>com.aliyun.oss</groupId>
  4. <artifactId>aliyun-sdk-oss</artifactId>
  5. <version>3.10.2</version>
  6. </dependency>

第二步在utils工具包写创建AvatarUtils工具类

AvatarUtils工具类代码:

  1. package com.hu.utils;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import com.hu.handler.CustomException;
  5. import com.hu.utils.commonResult.ResultCode;
  6. import org.springframework.web.multipart.MultipartFile;
  7. import java.io.InputStream;
  8. import java.text.SimpleDateFormat;
  9. import java.util.Date;
  10. import java.util.UUID;
  11. public class AvatarUtils {
  12. public static final String defaultAvatarUrl="填默认头像地址";
  13. // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
  14. private static String endpoint = "";
  15. // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  16. private static String accessKeyId = "";
  17. private static String accessKeySecret = "";
  18. // 填写Bucket名称,例如examplebucket。
  19. private static String bucketName = "";
  20. public static String ossUploadAvatar(MultipartFile multipartFile){
  21. String imageUrl=null;
  22. // 创建OSSClient实例。
  23. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  24. try {
  25. //获取文件上传的流
  26. InputStream inputStream = multipartFile.getInputStream();
  27. //构建日期目录
  28. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
  29. String datePath = dateFormat.format(new Date());//日期目录2022/10/10
  30. //获取文件名
  31. String originalFilename = multipartFile.getOriginalFilename();
  32. //随机生成一个文件名
  33. String filename = UUID.randomUUID().toString();
  34. //获取文件后缀名
  35. int i = originalFilename.lastIndexOf(".");
  36. String substring = originalFilename.substring(i);
  37. //判断图片是否符合要求
  38. if (!substring.equals(".jpg")&&!substring.equals(".png"))
  39. {
  40. throw new CustomException(ResultCode.ERROR,"上传图片格式错误,只能是.jpg或者.png");
  41. }
  42. //得到的随机文件名和后缀名拼接成一个新的完整的文件名
  43. String newFilename = filename.concat(substring);
  44. //最后完整的文件路径
  45. String fileUrl = datePath.concat("/").concat(newFilename);
  46. //通过io流将文件传给阿里云的文件存储桶,生成fileUrl这样的一个文件
  47. ossClient.putObject(bucketName, fileUrl, inputStream);
  48. imageUrl = "https://".concat(bucketName).concat(".").concat(endpoint).concat("/").concat(fileUrl);
  49. }catch (Exception ce) {
  50. ce.printStackTrace();
  51. } finally {
  52. if (ossClient != null) {
  53. ossClient.shutdown();
  54. }
  55. }
  56. return imageUrl;
  57. }
  58. }

第三步、通过调用AvatarUtils类下的ossUploadAvatar方法即可获得一个路径,可以选择存在数据库中。

  1. //MultipartFile文件上传类型封装
  2. public Boolean uploadFileByStudent(MultipartFile multipartFile){
  3. String imageUrl = AvatarUtils.ossUploadAvatar(multipartFile);
  4. }

添加MD5加密工具类 ,在utils工具包下新建一个MD5工具类

  1. package com.hu.utils;
  2. import java.security.MessageDigest;
  3. import java.security.NoSuchAlgorithmException;
  4. public class MD5Utils {
  5. public static String encrypt(String strSrc) {
  6. try {
  7. char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
  8. '9', 'a', 'b', 'c', 'd', 'e', 'f' };
  9. //得到加密对象,MD5加密算法只是对字节数组进行加密计算
  10. byte[] bytes = strSrc.getBytes();
  11. //获取MD5加密实例
  12. MessageDigest md = MessageDigest.getInstance("MD5");
  13. // 使用指定的字节更新实例
  14. md.update(bytes);
  15. // 获得密文
  16. bytes = md.digest();
  17. int j = bytes.length;
  18. char[] chars = new char[j * 2];
  19. int k = 0;
  20. // 把每一个byte 做一个与运算
  21. for (int i = 0; i < bytes.length; i++) {
  22. byte b = bytes[i];
  23. chars[k++] = hexChars[b >>> 4 & 0xf];
  24. chars[k++] = hexChars[b & 0xf];
  25. }
  26. return new String(chars);
  27. } catch (NoSuchAlgorithmException e) {
  28. e.printStackTrace();
  29. throw new RuntimeException("MD5加密出错!!+" + e);
  30. }
  31. }
  32. public static void main(String[] args) {
  33. System.out.println(MD5Utils.encrypt("111111"));
  34. }
  35. }

redis配置 :

windows下安装redis:

1、下载地址:

2、下载后是个压缩文件,对其解压 

3、解压后可以看到服务、客户端等,选择服务redis-server.exe双击开启。再选择客户端redis-cli.exe双击启动,在客户端输入ping,返回PONG则说明连接成功了

redis整合到项目中

引入redis依赖:

  1. <!--redis依赖-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-redis</artifactId>
  5. </dependency>

配置连接的application.yml文件: 

  1. spring:
  2. redis:
  3. host: 127.0.0.1
  4. port: 6379

测试连接:写个测试方法来进行最基本的连接测试!

  1. @Autowired(required = false)
  2. private RedisTemplate redisTemplate;
  3. @Test
  4. void getName(){
  5. redisTemplate.opsForValue().set("name","huyan!");
  6. System.out.println(redisTemplate.opsForValue().get("name"));
  7. }

运行效果如下!证明Redis连接成功!并且加数据获取数据也成功了! 

权限模块固定写法 :

新建五张表:菜单表;角色表;用户表;菜单角色关系表;角色用户关系表

在maven中导入spring_security和fastjson依赖

  1. <!--spring_security依赖-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-security</artifactId>
  5. </dependency>
  6. <!--fastjson依赖-->
  7. <dependency>
  8. <groupId>com.alibaba</groupId>
  9. <artifactId>fastjson</artifactId>
  10. <version>1.2.62</version>
  11. </dependency>

持续新中~

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发