赞
踩
next到这里的时候,我们可以选择用jdk几,还有就是Group,这个一般就是com.公司名字了,artifact就是项目名字。个人开发我还是喜欢用com.名字前缀哈。
到了这一步的话,如果对这个项目有什么别的需求,比如需要用到mybatis啥的可以勾相应的选项。其实就是idea自动帮咱导入相关的依赖。这里我们暂且啥也不勾。写过这么多的项目,咱们自己整合的依赖还是挺香的哈。
可能我比较懒,喜欢用mybatisplus,这些是整合mybatisplus需要的全部依赖,拿来即用哦。
<!--mybatis-plus和生成器依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.8.1</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> <version>2.4.16</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.4.7</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.20</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-schema</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> </dependency>
导入运行springboot需要的依赖
<!--======================================springboot部分=========================--> <!-- log4j2 日志 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!--web 启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--测试启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
package com.example.zzh; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; public class util { public static void main(String[] args) { run(); } public static void run() { // 1、创建代码生成器 AutoGenerator mpg = new AutoGenerator(); // 2、全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); gc.setOutputDir(projectPath + "/src/main/java"); //生成的类的作者 gc.setAuthor("张子行"); gc.setOpen(false); //生成后是否打开资源管理器 gc.setFileOverride(false); //重新生成时文件是否覆盖 gc.setServiceName("%sService"); //去掉Service接口的首字母I gc.setIdType(IdType.ID_WORKER); //主键策略 gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型 gc.setSwagger2(true);//开启Swagger2模式 mpg.setGlobalConfig(gc); DataSourceConfig dsc = new DataSourceConfig(); //配置作用的数据库,根据读者电脑配置 dsc.setUrl("jdbc:mysql://localhost:3306/xiaomi?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&useSSL=false"); //驱动 dsc.setDriverName("com.mysql.cj.jdbc.Driver"); //数据库名字 dsc.setUsername("root"); //指定数据库密码 dsc.setPassword("12345654"); //数据库类型 dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 4、包配置 PackageConfig pc = new PackageConfig(); //生成的路径 pc.setParent("com.example.zzh"); pc.setController("controller"); pc.setEntity("entity"); pc.setService("service"); pc.setMapper("mapper"); mpg.setPackageInfo(pc); // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); //为哪张表创建!!!!!!!!!!!!!!!!!!!! strategy.setInclude("user"); strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀 strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略 strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作 strategy.setRestControllerStyle(true); //restful api风格控制器 strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符 mpg.setStrategy(strategy); // 6、执行 mpg.execute(); } }
点击运行就出来了,当然我这里是把mapper的xml文件放到了resource下面,这是我的一种习惯吧。
相应的我们的spring的配置文件也需要进行改动,我用的mysql版本是8的,我电脑上这样能连,各位根据以前能连上过的配置自行配置数据源,注意我们使用的是mybatisplus而不是mybatis,标注mapper的xml文件位置时需要使用的是
mybatis-plus:
mapper-locations: classpath:mapperXml/.xml
而不是
mybatis:
mapper-locations: classpath:mapperXml/.xml。我以前为了图快就踩过这个坑,哎
server: port: 8888 spring: datasource: url: jdbc:mysql://localhost:3306/testdata?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver password: 128215 username: root 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,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 type: com.alibaba.druid.pool.DruidDataSource #注意我们使用的是mybatisplus而不是mybatis mybatis-plus: mapper-locations: classpath:mapperXml/*.xml
注意大家要在配置类上加上@mapperscan或者在mapper上加上@mapper注解啊。
这里需要注意的是:我们的测试目录需要和我们的启动类的目录结构一致
我们可以看到,成功打印出来了数据
到目前为止我们就成功整合了mybatisplus与springboot了。整合这个东西我们得一步步得来,一下子全部进行,哪错了都不知道。那就接着整合redis吧。
添加一个配置类,这个是我以前用过得,就拿来用咯,RedisConfig。主要就是配置key ,value得序列化规则啥的,各位可以定制
@Configuration public class RedisConfig { @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean public StringRedisSerializer stringRedisSerializer() { StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); return stringRedisSerializer; } @Bean public Jackson2JsonRedisSerializer jackson2JsonRedisSerializer() { Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); return jackson2JsonRedisSerializer; } @Bean public StringRedisTemplate stringRedisTemplate(){ StringRedisTemplate stringRedisTemplate = new StringRedisTemplate(); stringRedisTemplate.setConnectionFactory(redisConnectionFactory); // 开启事务支持 stringRedisTemplate.setEnableTransactionSupport(true); return stringRedisTemplate; } @Bean public RedisTemplate redisTemplate(){ RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(stringRedisSerializer()); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer()); redisTemplate.setHashKeySerializer(stringRedisSerializer()); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer()); // 开启事务支持 redisTemplate.setEnableTransactionSupport(true); return redisTemplate; } }
还有就是在我们得yml文件中加入redis的地址spring.redis.host=192.168.234.141。根据各位得实际redis地址来配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
发现没有报错,发现确实是有了数据,那么就整合成功了。
可能好多细节没说,emmmm我是根据以前得项目速整出来的。有啥缺点希望大家佐证了。完整代码得链接https://github.com/zhangzihang3/redis-boot-mybatislus-spring.git
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。