0717-7821348
大乐透爱彩人走势图

大乐透爱彩人走势图

您现在的位置: 首页 > 大乐透爱彩人走势图
根据SpringBoot从零构建博客网站 - 整合lombok和mybatis-plus
2019-07-13 22:42:30

在上一章节中《技能选型和整合开发环境》,确认了开发的技能,可是假如直接这样用的话,或许开发功率会不高,为了进步开发的功率,这儿再整合lombok和mybatis-plus两个组件。

1、lombok

曾经在Github上看到过lombok,可是也没有进一步了解它的作用。前几天用了一下,感觉代码清新多了,确时觉得运用lombok能够简化代码进步开发功率的。

lombok的官网为https://projectlombok.org/,官网上对它介绍如下:

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

大约意思便是:

Lombok是一种Java™实用东西,可用来协助开发人员消除Java的冗长代码,尤其是关于简略的Java目标(POJO),它经过注释完结这一意图。

要运用lombok这个东西,首要要为开发东西装置相应插件,以eclipse为例:

(1)、到官网下载lombok.jar

(2)、双击lombok.jar文件,呈现如下画面:

点击“Specify location...”按钮,找到eclipse的运转文件eclipse.exe

(3)、装置完结,重启eclipse即可。

(4)、假如是maven办理工程,只需要在pom文件参加:


org.projectlombok
lombok
true

留意:因为自己这边是根据spring boot的,所以lombok没有加版本号,假如你这边不是根据spring boot就要加上相应的版本号。

lombok供给注解有:

  • @Setter:注解在特点上;为特点供给 setting 办法
  • @Getter:注解在特点上;为特点供给 getting 办法
  • @NoArgsConstructor:注解在类上;为类供给一个无参的结构办法
  • @AllArgsConstructor:注解在类上;为类供给一个全参的结构办法
  • @ToString:注解在类上;生成对应的 toString 办法
  • @EqualsAndHashCode:注解在类上;生成对应的 equals 和 hashCode 办法
  • @RequiredArgsConstructor:注解在类上;会生成一个包括常量,和标识了NotNull的变量的结构办法
  • @Data:注解在类上;等同于@Getter、@Setter、@RequiredArgsConstructor、@ToString和@EqualsAndHashCode一同的作用
  • @Log4j/@Slf4j:注解在类上;生成对应的 Logger 目标,变量名为 log

当然还有一些注解,此处就不在介绍,咱们能够自行查看官网信息。

举例说明:

比方:写一个Config的domain目标,从上一节章节可知,该目标有3个特点分别是configId、configValue和description,假如是按着本来的写法是:

package com.swnote.common.domain;

import java.io.Serializable;

/**
* 站点相关装备信息
*
* @author lzj
* @since 1.0
* @date [2019-04-04]
*/
public class Config implements Serializable {
private static final long serialVersionUID = 8241975875344125491L;

/**
* 装备项key
*/
private String configId;

/**
* 装备项value
*/
private String configValue;

/**
* 描绘
*/
privat根据SpringBoot从零构建博客网站 - 整合lombok和mybatis-pluse String description;

public String getConfigId() {
return configId;
}

public void setConfigId(String configId) {
this.configId = configId;
}

public String getConfigValue() {
return configValue;
}

public void setConfigValue(String configValue) {
this.configValue = configValue;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description根据SpringBoot从零构建博客网站 - 整合lombok和mybatis-plus;
}
}

可是假如运用lombok后,就变成如下:

package com.swnote.common.domain;

import java.io.Serializable;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
* 站点相关装备信息
*
* @author lzj
* @since 1.0
* @date [2019-04-04]
*/
@Data
@NoArgsConstructor
public class Config implements Serializable {
private static final long serialVersionUID = 8241975875344125491L;

/**
* 装备项key
*/
private String configId;

/**
* 装备项value
*/
private String configValue;

/**
* 描绘
*/
private String description;
}

代码显着变得愈加简练了,只加了@Data和@NoArgsConstructor两个注解,就到达跟上面相同的作用,省去Getter和Getter代码,可是这个相同有Getter和Getter办法,这便是lombok插件帮咱们加上相应的代码。

2、mybatis-plus

假如直接运用mybatis作为耐久化层结构的话,那么对每条SQL都得写在相应的mapper文件里边,这也很费事的。但是mybatis-plus是在MyBatis的基础上只做增强不做改动,为简化开发、进步功率而生。官网在是https://mp.baomidou.com,它的特性有:

  • 无侵入:只做增强不做改动,引进它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:发动即会主动注入根本 CURD,功用根本无损耗,直接面向目标操作
  • 强壮的 CRUD 操作:内置通用 Mapper、通用 Service,只是经过少数装备即可完结单表大部分 CRUD 操作,更有强壮的条件结构器,满意各类运用需求
  • 支撑 Lambda 方式调用:经过 Lambda 表达式,便利的编写各类查询条件,无需再忧虑字段写错
  • 支撑多种数据库:支撑 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
  • 支撑主键主动生成:支撑多达 4 种主键战略(内含分布式仅有 ID 生成器 - Sequence),可自在装备,完美处理主键问题
  • 支撑 XML 热加载:Mapper 对应的 XML 支撑热加载,关于简略的 CRUD 操作,乃至能够无 XML 发动
  • 支撑 ActiveRecord 方式:支撑 ActiveRecord 方式调用,实体类只需承继 Model 类即可进行强壮的 CRUD 操作
  • 支撑自界说大局通用操作:支撑大局通用办法注入( Write once, use anywhere )
  • 支撑关键词主动转义:支撑数据库关键词(order、key......)主动转义,还可自界说关键词
  • 内置代码生成器:选用代码或许 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支撑模板引擎,更有超多自界说装备等您来运用
  • 内置分页插件:根据 M根据SpringBoot从零构建博客网站 - 整合lombok和mybatis-plusyBatis 物理分页,开发者无需关怀具体操作,装备好插件之后,写分页等同于一般 List 查询
  • 内置功用剖析插件:可输出 Sql 句子以及其执行时间,主张开发测验时启用该功用,能快速揪出慢查询
  • 内置大局阻拦插件:供给全表 delete 、 update 操作智能剖析阻断,也可自界说阻拦规矩,防备误操作
  • 内置 Sql 注入剥离器:支撑 Sql 注入剥离,有用防备 Sql 注入进犯

整合mybatis-plus:

(1)、pom文件中参加相应依靠:


com.baomidou
mybatis-plus-boot-starter
3.1.0

(2)、在装备文件application.yml加上:

mybatis-plus: 
mapper-locations: classpath:com/swnote/*/dao/*.xml
type-aliases-package: com.swnote.auth.domain,com.swnote.blog.domain,com.swnote.common.domain

(3)、domain类上加上相应的注解:

/**
* 站点相关装备信息
*
* @author lzj
* @since 1.0
* @date [2019-04-04]
*/
@Data
@NoArgsConstructor
@TableName("comm_config")
public class Config implements Serializable {
private static final long serialVersionUID = 2408416388054324323L;

/**
* 装备项key
*/
@TableId(value = "configId", type = IdType.INPUT)
private String configId;

/**
* 装备项value
*/
@TableField("configValue")
private String configValue;

/**
* 描绘
*/
@TableField("description")
private String description;
}

其间@TableName、@TableId和@TableFiel邓彦芳d都是mybatis-plus中界说的注解。

(4)、dao层代码:

/**
* 站点相关装备信息Dao
*
* @author lzj
* @since 1.0
* @date [2019-04-04]
*/
@Repository
public interface ConfigDao extends BaseMapper {

}

(5)、service层代码:

/**
* 站点相关装备信息服务接口
*
* @author lzj
* @since 1.0
* @date [2019-04-04]
*/
public interface IConfigService extends IService {

}
/**
* 站点相关装备信息服务类
*
* @author lzj
* @since 1.0
* @date [2019-04-04]
*/
@Service
public class ConfigService extends ServiceImpl implements IConfigService {

}

经过上面dao层和service层代码能够发现,关于增修改查的操作都不需要写任何代码。

(6)、测验

@RunWith(SpringRunner.class)
@SpringBootTest
public class ConfigServiceTest {

@Autowired
private IConfigService configService;

@Test
public void save() throws Exception {
Config config = new Config();
config.setConfigId("test");
config.setConfigValue("testValue");
config.setDescription("测验内容");
configService.save(config);

}

@Test
public void update() {
Config config = new Config();
config.setConfigId("test");
config.setConfigValue("testValue---g");
config.setDescription("测验内容---g");
configService.updateById(config);
}

@Test
public void get() {
Config config = configService.getById("test");
System.out.println(config);
}

@After
public void delete() {
configService.removeById("test");
}
}

经测验是没有问题的,整合mybatis-plus能够显着进步开发功率。