准备:Java环境,jdk,tomcat,idea
第一步:创建项目 file->new->project
选择 spring initializr 其他的不用选,默认即可
下一步填写项目名称和修改包名
然后下一步
选择对应的模块
总共5块,web,MySQL,mybatis,jdbc,redis
然后下一步就行了。项目就创建好了
整合generator:
我采用的yml配置。
首先把项目创建好之后的默认文件,application.properties修改名称或者删除,就是把后缀改一下,改为application.yml
然后填写一下数据库的配置信息
server:
port: 8080
spring:
datasource:
name: test
url: jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
#配置初始化大小/最小/最大
initial-size: 1
min-idle: 1
max-active: 20
#获取连接等待超时时间
max-wait: 60000
#间隔多久进行一次检测,检测需要关闭的空闲连接
time-between-eviction-runs-millis: 60000
#一个连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
mybatis:
mapper-locations: classpath:mapping/*Mapper.xml
type-aliases-package: com.xuyang.multiuser.model
# redis配置
redis:
host: 127.0.0.1 # Redis服务器地址
port: 6379 # Redis服务器连接端口
pool:
max-active: 8 # 连接池最大连接数
max-wait: 1 # 连接池最大阻塞等待时间
max-idle: 8 # 连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接
timeout: 5000 # 连接超时时间(毫秒)
第一个是设置端口,后面就是数据库信息,因为是采用mybatis操作数据库因此还需要配置mybatis,然后就是redis配置
下一步在pom.xml中添加generator的配置
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
这一串添加的位置是在底部一点,是<plugin>标签开头,而我们创建好的项目的pom.xml中是有这个标签开始的,放在他后面同级就行
下一步创建generatorconfig.xml
创建文件的位置是
在resources下面新建的文件夹然后在文件夹里面创建的generatorconfig.xml 因为采用逆向生成是需要驱动包的,我没有安装本地maven仓库,直接就复制的。只是在xml中有用到。具体xml中有写
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
<classPathEntry location="D:\project\multiuser\src\main\resources\generator\mysql-connector-java-5.1.21-bin.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="false"/>
</commentGenerator>
<!--数据库连接驱动类,URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/test" userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成(实体)模型的包名和位置-->
<javaModelGenerator targetPackage="main.java.com.xuyang.multiuser.model" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成XML映射文件的包名和位置 -->
<sqlMapGenerator targetPackage="main.resources.mapping" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO接口的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="main.java.com.xuyang.multiuser.mapper" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
把xml中的内容改成你的,就可以了,包名和位置需要填写全名称,所以是main.java开始。不然生成的位置不对还要自己慢慢移动,然后对应的文件夹自己可以创建好,也可以不用,会自动帮你创建好。
然后需要运行,点击 在弹出的窗里面选择maven 点击+号,填写名称,选择项目,就可以了
然后选择新建的generator点击运行,就会在对应的文件夹生成文件(先创建文件夹,个人建议,因为可以其他文件夹也创建了,自己清楚有层次)。到此generator整合完毕。就不用自己去一个一个的新建model和mapper
整合redis:
pom.xml添加redis依赖
<!-- 整合redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<!--<version>1.3.8.RELEASE</version>-->
</dependency>
<!-- 整合redis结束 -->
然后创建redis工具类 我是新建了文件夹来统一管理。
工具类很简单,就只写了一个String 的方法,个人习惯之前用PHP做,直接redis->set(key,value);就好,而java如果不自己写一个工具类,每次用都要实例化一次,然后写stringRedisTemplate.opsForValue()这样一长串,所以还是写一个,其他的一样写若不想写有现成的,上传了。或者百度也有很多。这上传了必须选择一个币,没币的人一大堆。
@Component
public class RedisConfig extends CachingConfigurerSupport {
@Autowired
private StringRedisTemplate stringRedisTemplate;
public void set(String key, String value){
ValueOperations<String, String> ops = this.stringRedisTemplate.opsForValue();
boolean bExistent = this.stringRedisTemplate.hasKey(key);
if (bExistent) {
System.out.println("this key is bExistent!");
}else{
ops.set(key, value);
}
}
public String get(String key){
return this.stringRedisTemplate.opsForValue().get(key);
}
public void del(String key){
this.stringRedisTemplate.delete(key);
}
}
然后需要开启缓存
使用:
很简单的使用方法,和PHP用的时候一样的,然后有一点的是这个是StringRedisTemplate 不是 RedisTemplate
两者的区别是,StringRedisTemplate是字符串,RedisTemplate是字节组,当取出来时StringRedisTemplate是字符串,而RedisTemplate是存入时的格式,若你想取出来不做任何的操作,取出来就是你当初存入的格式,就用RedisTemplate。个人习惯用json。若用RedisTemplate同样的工具类,就是变个对象哈,具体可以百度,地址:https://www.cnblogs.com/zeng1994/p/03303c805731afc9aa9c60dbbd32a323.html 直接拉到第四,同理还有其他的步骤也需要改变。
到此redis整合完成。
整合swagger2:
pom.xml加上一段配置,配置的位置,看一下有<dependency>开头的,然后在其后面加上即可
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<!-- swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
下一步写一个配置类(初始化类):
在util中新建一个类
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket swaggerSpringMvcPlugin() {
return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();
}
}
复制进去就好,然后就可以使用了。
PS:最后记录一下,redis存储的字符串所以需要转为json。我测试过,项目自带的json有问题,存不进去,因此自己加一个
pom.xml加一个配置
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
然后写一个json工具类
public class JsonUtils {
// 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
/**
* 将对象转换成json字符串
* <p>Title: pojoToJson</p>
* <p>Description: </p>
*
* @param data
* @return
*/
public static String objectToJson(Object data) {
try {
String string = MAPPER.writeValueAsString(data);
return string;
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
/**
* 将json结果集转化为对象
*
* @param jsonData json数据
* @param beanType 对象中的object类型
* @return
*/
public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
try {
T t = MAPPER.readValue(jsonData, beanType);
return t;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 将json数据转换成pojo对象list
* <p>Title: jsonToList</p>
* <p>Description: </p>
*
* @param jsonData
* @param beanType
* @return
*/
public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
try {
List<T> list = MAPPER.readValue(jsonData, javaType);
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
- @Api:修饰整个类,描述Controller的作用
- @ApiOperation:描述一个类的一个方法,或者说一个接口
- @ApiParam:单个参数描述
- @ApiModel:用对象来接收参数
- @ApiProperty:用对象接收参数时,描述对象的一个字段
- @ApiResponse:HTTP响应其中1个描述
- @ApiResponses:HTTP响应整体描述
- @ApiIgnore:使用该注解忽略这个API
- @ApiError :发生错误返回的信息
- @ApiImplicitParam:一个请求参数
- @ApiImplicitParams:多个请求参数
到此告一段落。