插件
Lombok
使用注解取代原来冗余的get和set,空构造,全参数构造
1.加入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
2.安装插件
3.使用
3.1构造方法
@NoArgsConstructor //无参构造方法
@AllArgsConstructor(access = AccessLevel.PRIVATE//设为私有,外部不能访问) //全参构造方法
@RequiredArgsConstructor //必须包含的构造方法 @NonNull的属性/被finall修饰的属性
public class WcInfo {
/**
*主键
*/
@NonNull //不传值报空指针
private String wcId;
/**
*地图位置id
*/
private final String siteId;
}
3.2getter/setter
@Getter
@Setter
//类的所有属性都生成getter/setter
//自己写的优先级高于生成的优先级
public class WcInfo {
/**
*主键
*/
private String wcId;
/**
*地图位置id
*/
@Getter(value = AccessLevel.NONE)//不生成getter方法-设置级别
private String siteId;
}
3.3toString
@ToString(of ={"id"},exclude={"name"},callSuper= true)
//of只打印某个属性
//exclude排除哪些属性
//callSuper= true 指定调用父类的toString+本类的toString
public class WcInfo {
/**
*主键
*/
private String wcId;
/**
*地图位置id
*/
private String siteId;
}
3.4EqualsAndHashCode
@EqualsAndHashCode(of ={"id"})
//of ={"id"},只使用id生成Equals和HashCode方法
//默认所有属性生成Equals和HashCode方法
//Equals和HashCode方法要保持逻辑上一致
public class WcInfo {
/**
*主键
*/
private String wcId;
/**
*地图位置id
*/
private String siteId;
}
3.5@Data
@Data
//对所有属性生成getter/setter,Equals和HashCode方法,toString方法
//如果需要按自己的业务逻辑来比较,可以再加@EqualsAndHashCode(of ={"id"}),只通过id来比较
public class WcInfo {
/**
*主键
*/
private String wcId;
/**
*地图位置id
*/
private String siteId;}
3.6@Accessors
@Accessors(chain = true,fluent = true)
//@Accessors自己不做任何事情,需要借助@Getter@Setter或者@Data
//链式编程(chain = true),默认false, 使用 wcInfo.setWcId("123").setSiteId("123");
//fluent = true,使用wcInfo.wcId("123").siteId("123"); 取wcInfo.wcId()
public class WcInfo {
/**
*主键
*/
private String wcId;
/**
*地图位置id
*/
private String siteId;}
3.7@Builder
@Builder
//建造者设计模式 使用WcInfo info = WcInfo.builder().wcId("111").siteId("112").build();
public class WcInfo {
/**
*主键
*/
private String wcId;
/**
*地图位置id
*/
private String siteId;}
@Slf4j 专门针对项目中的Slf4j
@Log4j及@Log4j2等
导入依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.8</version>
</dependency>
1.之前打印日志
private static final Logger LOGGER = LoggerFactory.getLogger(WcManageServiceImpl.class);
LOGGER.debug("InfoUrl"+infoUrl);
2.引入之后
在类上添加@Slf4j
直接使用:log.info("日志打印");
EasyCode
1.IDEA连接数据库
填写url,用户名,密码,数据库,测试
2.IDEA查询数据库
3.利用EasyCode生成实体类
4.选择要生成的类
MybatisPlus模板
entity:
##导入宏定义
$!{define.vm}
##保存文件(宏定义)
#save("/entity", ".java")
##包路径(宏定义)
#setPackageSuffix("entity")
##自动导入包(全局变量)
$!{autoImport.vm}
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
##表注释(宏定义)
#tableComment("表实体类")
@SuppressWarnings("serial")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("$!{tableInfo.obj.name}")
public class $!{tableInfo.name} {
#foreach($column in $tableInfo.pkColumn)
#if(${column.comment})//${column.comment}#end
@TableId
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#foreach($column in $tableInfo.otherColumn)
#if(${column.comment})//${column.comment}#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}
mapper:
##导入宏定义
$!{define.vm}
##设置表后缀(宏定义)
#setTableSuffix("Mapper")
##保存文件(宏定义)
#save("/mapper", "Mapper.java")
##包路径(宏定义)
#setPackageSuffix("mapper")
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
##表注释(宏定义)
#tableComment("表数据库访问层")
public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {
}
service:
##导入宏定义
$!{define.vm}
##设置表后缀(宏定义)
#setTableSuffix("Service")
##保存文件(宏定义)
#save("/service", "Service.java")
##包路径(宏定义)
#setPackageSuffix("service")
import com.baomidou.mybatisplus.extension.service.IService;
##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} extends IService<$!tableInfo.name> {
}
serviceImpl:
##导入宏定义
$!{define.vm}
##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")
##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")
##包路径(宏定义)
#setPackageSuffix("service.impl")
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
##表注释(宏定义)
#tableComment("表服务实现类")
@Service("$!tool.firstLowerCase($tableInfo.name)Service")
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {
}
Maven Helper
日常开发中,可能经常会遇到jar包冲突等问题,就需要通过查看maven依赖树来查看依赖情况。这种方式不是很高效,可以安装Maven Helper插件,直接打开pom文件,即可查看依赖数,还能自动分析是否存在jar包冲突。
打开pom文件,就可以打开该pom文件的Dependency Analyzer视图(在文件打开之后,文件下面会多出这样一个tab)
进入Dependency Analyzer视图之后有三个查看选项分别是:
Conflicts(冲突)
All Dependencies as List(列表形式查看所有依赖)
All Dependencies as Tree(树结构查看所有依赖),并且这个页面还支持搜索。