- 博客(66)
- 资源 (4)
- 收藏
- 关注
原创 Log4j的日志级别
log4j定义了8个级别的log(除去OFF和ALL 可以说分为6个级别),优先级从高到低依次为:OFF FATAL ERROR WARN INFO DEBUG TRACE ALLALL 最低等级的 用于打开所有日志记录TRACE 很低的日志级别 一般不会使用DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的 主要用于开发过程中打印一些运行信息INFO 消息在粗粒度级别上突出强调应用程序的运行过程 打印一些你感兴趣的或者重要的信息 这个可以用于生产环境中输出程序运
2021-12-23 20:50:03 320
原创 Mybatis-plus的介绍
MybatisPlus是mybatis的增强工具,只做增强不做改变,不会对mybatis产生任何影响。它的主要优势具有无侵入、损耗小、强大的CRUD操作、支持 Lambda 形式调用、支持 ActiveRecord模式、支持自定义全局通用操作、内置代码生成器、内置分页插件、分页插件支持多种数据库、内置性能分析插件、内置全局拦截插件等。主要突出其强大性能,提交开发效率。...
2021-12-10 16:52:21 199
原创 SpringBoot整合Mybatis-Plus入门案例
1.择Idear中的File->New->project2.输入项目组、项目名称及版本3.检查项目名称及存储位置4.引用依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version></dependenc...
2021-12-10 16:52:13 578
原创 Lombok插件
1、介绍lombok是一个插件,用途是使用注解给你类里面的字段,自动的加上属性,构造器,ToString方法,Equals方法等等,比较方便的一点是,你在更改字段的时候,lombok会立即发生改变以保持和你代码的一致性。2、常用的 lombok 注解介绍@Getter 加在类上,可以自动生成参数的getter方法。@Setter 加在类上,可以自动生成参数的setter方法@ToString 加在类上,调用toString()方法,可以输出实体类中所有属性的值@RequiredArg
2021-12-10 16:52:04 21413
原创 Mybatis-Plus的CRUD
一.BaseMapper接口方法介绍baseMaper中提供了CRUD方法,具体方法如下:// 插入一条记录int insert(T entity);// 根据 entity 条件,删除记录int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);// 删除(根据ID 批量删除)int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends
2021-12-10 16:51:56 1038
原创 Mybatis-Plus的service封装
一、通用service简介Mybatis-Plus除了通用的Mapper还有通用的Servcie层,这也减少了相对应的代码工作量,把通用的接口提取到公共。其实按照MP的这种思想,也可以自己实现一些通用的Controller。二、通用service常用方法介绍(IService)/** * 插入一条记录(选择字段,策略插入) * @param entity 实体对象*/default boolean save(T entity) { return SqlHelper.retB...
2021-12-10 16:51:45 1281
原创 Mybatis的逆向工程
1、介绍一般在开发中,常用的逆向工程方式是通过数据库的表生成对应的实体类,dao层接口和映射文件。2、逆向工程的配置(1)引入依赖<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version><...
2021-12-10 16:51:30 305
原创 mysql的Find_IN_SET函数
注意:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,如果没有就返回0,str2必须以","分割开。总结:like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。(1)如果返回0,就查不到数据(2)如果不返回0,就能查到数据...
2021-12-10 16:51:14 952
原创 Mybatis-Plus的条件构造器(Wrapper)
一.介绍在mybatis-plus中提了构造条件的类Wrapper,它可以根据自己的意图定义我们需要的条件。Wrapper是一个抽象类,一般情况下我们用它的子类QueryWrapper来实现自定义条件查询。二.常用方法1.selectOne方法//查询姓名为刘辉军并且性别为男的员工@Testpublic void testSelectOne(){QueryWrapper<Employee> queryWrapper=new QueryWrapper<>();qu
2021-11-24 09:54:22 809 1
原创 SpringCloudAlibaba简介
阿里开源组件Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。Dubbo:这个就不用多说了,在国内应用非常广泛的一款高性能 Java RPC 框架。Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。Arthas:开源的Java..
2021-11-24 09:54:16 167
原创 Nacos统一配置
1、dataId 的完整格式如下${prefix}-${spring.profile.active}.${file-extension} prefix 默认为所属工程配置spring.application.name 的值(名字+properties)(即:nacos-provider.properties),也可以通过配置项 spring.cloud.nacos.config.prefix来配置。 spring.profile.active 即为当前环境对应的 profil...
2021-11-24 09:54:07 481
原创 Nacos名称空间切换环境
说明:在实际开发中,通常有多套不同的环境(默认只有public),那么这个时候可以根据指定的环境来创建不同的 namespce,例如,开发、测试和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。以此来实现多环境的隔离。切换到配置列表可以发现有四个名称空间:public(默认)以及我们自己添加的3个名称空间(prod、dev、test),可以点击查看每个名称空间下的配置文件,当然现在只有public下有一个配置。默认情况下,项目会到p..
2021-11-24 09:54:01 1511
原创 Nacos加载多配置文件
偶尔情况下需要加载多个配置文件。假如现在dev名称空间下有三个配置文件:nacos-provider.properties、redis.properties、jdbc.properties。jdbc.properties: jdbc.url=xxxxxxredis.properties: redis.url=yyyynacos-provider.properties默认加载,怎么加载另外两个配置文件?在bootstrap.yml文件中添加如下配置:spring
2021-11-24 09:53:52 4969 1
原创 Nacos配置的分组
在实际开发中,除了不同的环境外。不同的微服务或者业务功能,可能有不同的redis及mysql数据库。区分不同的环境我们使用名称空间(namespace),区分不同的微服务或功能,使用分组(group)。当然,你也可以反过来使用,名称空间和分组只是为了更好的区分配置,提供的两个维度而已。新增一个redis.properties,所属分组为provider:现在开发环境中有两个redis.propertis配置文件,一个是默认分组(DEFAULT_GROUP),一个是provider组默
2021-11-24 09:53:44 4387
原创 服务网关Gateway介绍
API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题: 破坏了服务无状态特点。 为了保证对外服务的安全性,我们需要实现对服务访问的权限控制,而开放服务的权限控制机制将会贯穿并污染整个开放服务的业务逻辑,这会带来的最直接问题是,破坏了服务集群中REST API无状态的特点。 从具体开发和测试的角度来说,在工作中除了要考虑实际的业务逻辑之外,还需要额外考虑对接口访问
2021-11-24 09:53:29 199
原创 服务网关Gateway路由规则
1、创建网关module2、引入依赖<properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.SR2</spring-cloud.version></properties><dependencies> <dependency> <group...
2021-11-24 09:53:23 3033
原创 服务网关Gateway断言工厂
Spring Cloud Gateway包含许多内置的Route Predicate工厂。所有这些断言都匹配HTTP请求的不同属性。多路由断言工厂通过and组合这些断言工厂的配置方式,参照官方文档:Spring Cloud Gateway spring: cloud: gateway: routes: - id: host_route uri: http://example.org predicates: ...
2021-11-23 18:07:14 279
原创 服务网关Gateway过滤器工厂
路由过滤器允许以某种方式修改传入的HTTP请求或传出的HTTP响应。路径过滤器的范围限定为特定路由。Spring Cloud Gateway包含许多内置的GatewayFilter工厂。这些过滤器工厂的配置方式,同样参照官方文档:Spring Cloud Gateway 过滤器 有 20 多个 实现类,根据过滤器工厂的用途来划分,可以分为以下几种:Header、Parameter、Path、Body、Status、Session、Redirect、Retry、RateLimiter和Hys.
2021-11-23 18:07:08 574
原创 Gateway面向服务的路由
如果要做到负载均衡,则必须把网关工程注册到nacos注册中心,然后通过服务名访问。1、把网关服务注册到Nacos(1)引入nacos的相关依赖<dependencies> <!--保留原有的依赖--> <!--新增的依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifa...
2021-11-23 18:07:01 412
原创 Sentinel介绍
1、Sentinel介绍(分布式系统的流量防卫兵 )随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。2、组成Sentinel 分为两个部分: 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运
2021-11-23 18:06:55 913
原创 Sentinel入门案例
官方文档:Sentinel · alibaba/spring-cloud-alibaba Wiki · GitHub1、搭建Dashboard控制台您可以从 release 页面 下载最新版本的控制台 jar 包。Releases · alibaba/Sentinel · GitHub下载的jar包(课前资料已下发),copy到一个没有空格或者中文的路径下,打开dos窗口切换到jar包所在目录。执行:java -jar sentinel-dashboard-xxx.jar
2021-11-23 18:06:48 609
原创 Sentinel整合feign组件
1、引入依赖nacos-consumer模块引入feign及sentinel的依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><dependency> <groupId>o...
2021-11-23 18:06:41 217
原创 Mybatis常用注解
@Insert 实现新增,代替了<insert></insert>@Update实现更新修改,代替了<update></update>@Delete实现删除,代替了<delete></delete>@Select实现查询,代替了<select></select>@Result实现结果集封装,代替了<result></result>@Results ...
2021-11-23 18:06:33 89
原创 springMVC常用注解
@ RequestP aram当传递的参数的key值与形参的名字不一致的时候,需要该注解指定,接收的参数要传递给哪个形参@ RequestH eader 获取请求头数据:传入的值就是请求头key-value的key值@ CookieValue 获取Cookie的值@ RequestBody接收前端传入的消息体,注意:只有POST请求才有消息体。接收A jax提交的异步数据@ ResponseBody将我们的返回值异步响应为json数据@ SessionA tribut...
2021-11-23 18:06:27 104
原创 MySQL的事务
1、事务介绍事务是指单个逻辑单元内的所有操作、要么全部成功、要么全部失败!!!事务是保证数据准确性、一致性、完整性的一种机制!2、事务操作的sql3、事务的四大特性(1)、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。(2)、一致性(Consistency):事务开始前和结束后,.
2021-11-23 18:06:20 69
原创 spring常用注解
(1)springIOC基础注解@Component 用于实例化对象,相当于配置文件中的<bean id="" class=""/>@Controller 一般标注在表现层的类上@Service 一般标注在业务层的类上@Repository 一般标注在持久层的类上@Autowired 按照类型注入@Resource 按照bean的id注入@ Qualifier按照类型注入+按照bean的id注入@Value 用于简单数据类型的注入@S...
2021-11-23 18:06:11 65
原创 Mybatis-Plus的代码生成器
一、介绍代码生成器顾名思义就是为我们生成一些代码,省去了我们一些时间。AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity(pojo)、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率,MyBatis-Plus从3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖,才能实现代码生成器功能。二、入门案例(1)引入依赖<de
2021-11-22 16:54:24 477
原创 Mybatis的动态sql
一、动态sql介绍SQL 是动态拼接成的,根据传入的变量值进行逻辑操作并动态拼接,方便实现多条件下的数据库操作。在业务逻辑复杂,即简单 SQL 无法完成时,需要拼接时就要使用动态SQL。二、动态sql解决的问题动态sql主要解决根据条件判断附加条动态sql主要解决多条件变化查询,实现自动判断记录字段是否需要更新,根据条件判断附加条sql条件,实现批量添加数据、批量修改数据、批量修删除数据等,优化sql语句,提高执行效率。三、项目案例1、创建maven<dependencies&
2021-11-21 09:54:30 111
原创 Mybatis的where标签
1、where标签的特点(1)where标签可以被解析为where 关键字(2)可以去掉离他最近的一个无用的and2、where标签的使用(1)编写接口方法/** * 根据User中的字段进行查询 * @return */ List<User> getUserByNameAndSex(Map map);(2)使用where标签进行sql处理<!--where 标签的使用--><select id="getUse...
2021-11-21 09:54:19 3475
原创 Mybatis的if标签
1、if标签介绍如果条件成立就附加<if></if>之间的sql语句,如果条件不成立就不附加<if></if>之间的sql语句。书写格式为:<if test="表达式">sql语句</if>2、if标签的使用(1)编写接口方法/** * 根据User中的字段进行查询 * @return */ List<User> getUserDy01(Map map);(2)编...
2021-11-21 09:54:06 13829
原创 Mybatis的set标签
1、set标签特点:(1)set标签用于更新语句中(2)set标签解析为set关键字(3)set可以去除跟新语句中无用的逗号(4)通常是和if标签一起使用2、set标签的使用(1)编写接口方法/** * 更新user * @param user */ int updateUserById(User user);(2)编写sql语句<update id="updateUserById" parameterType="user">...
2021-11-21 09:53:55 14442
原创 Mybatis的trim标签的使用
1、trim介绍trim标签为万能标签,可用于set或where等。prefix表示要附加的前缀关键字,suffix表示要附加的后缀关键字,prefixOverrides表示要忽略前置字符,suffixOverrides表示要忽略后置字符。格式:<trim prefix="where" prefixOverrides=","> <if test="name!=null"> name=#{name} </if> ...
2021-11-21 09:53:44 774
原创 Mybatis的choose标签
1、choose标签介绍choose标签作用条件判断来拼接指定的条件,它和if不太相同,choose似类于java中的switch语句用法,直要有条件成立,其它判断将得不到执行,如果所有条件都不成立则执行otherwise标签中的内容。格式:<choose> <when test=条件1> 执行的代码; </when><when test=条件2> 执行的代码; </when> ...... <o
2021-11-21 09:53:28 24742
原创 Mybatis参数处理
基本类型和String可以直接写类型名称也可以使用包名.类名的方式例如:java.lang.String。实体类类型,目前我们只能使用全限定类名(可以注册实体类的别名)。一、传入的参数为包装类案例说明页面提交上来订单对象,根据订单对象中用户的姓名查询用户的基本信息。1、定义包装类2、接口3、映射文件4、测试二、传入参数是map当业务层接收到多个参数时,可以将多个参数封装到map中,将,map传到dao层。案例:查询名字包含赵,且性...
2021-11-21 09:52:59 213
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人