MybatisPlus知识点
mp中查询指定字段IdsWrapper.select(“字段名”)
如何快速将一个List或数组用特定符号拼接
在日常开发中,我们总会有需要list或则数组使用特定符号进行拼接操作。第一个思路就是有循环然后进行拼接组合
当然也有工具类,使得代码简化
List<String> list = new ArrayList<String>(); list.add("11"); list.add("22"); list.add("33"); //11,22,33 //import org.apache.commons.lang.StringUtils; String join = StringUtils.join(list.toArray(), ","); System.out.println(join);
@RequestParam加与不加的区别
@RequestParam加与不加的区别最简单的两种写法,加或不加@RequestParam注解
@RequestMapping("/list")public String test(int userId) { return "list";}@RequestMapping("/list")public String test(@RequestParam int userId) { return "list";}
区别
第一种写法参数为非必传,第二种写法参数为必传。参数名为userId。
第二种写法可以通过@RequestParam(required = false)设置为非必传。因为required值默认是true,所以默认必传。
第二种写法可以通过@RequestParam(“userId”)或者@RequestParam(value = “userId”)指定参数名。
第二种写法可以通过@RequestParam(defaultValue = “0”)指定参数 ...
服务调用-Feign
Feign基本概念
Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。
Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。
Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。
Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义的方式。
Spring Cloud Feign帮助我们定义和实现依赖服务接口的定义。在Spring Cloud feign的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用Spring Cloud Ribbon时自行封装服务调用客户端的开发量。实现服务调用
引入依赖在service模块<!--服务调用--><dependenc ...
服务发现-搭建Nacos服务
Nacos基本概念(1)Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
(2)常见的注册中心:
Eureka(原生,2.0遇到性能瓶颈,停止维护)
Zookeeper(支持,专业的独立产品。例如:dubbo)
Consul(原生,GO语言开发)
Nacos
相对于 Spring Cloud Eureka 来说,Nacos 更强大。Nacos = Spring Cloud Eureka + Spring Cloud Config ,Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Con ...
微服务SpringCloud
SpringCloud相关概念介绍什么是微服务 *
微服务是架构风格
把一个项目拆分成独立的多个服务,多个服务是独立运行,每个服务占用独立进程
为什么需要微服务在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高。到后面引入了SOA服务化,但是,由于 SOA 早期均使用了总线模式,这种总线模式是与某种技术栈强绑定的,比如:J2EE。这导致很多企业的遗留系统很难对接,切换时间太长,成本太高,新系统稳定性的收敛也需要一些时间。
微服务与单体架构区别 *(1)单体架构所有的模块全都耦合在一块,代码量大,维护困难。
微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
(2)单体架构所有的模块都共用一个数据库,存储方式比较单一。
微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
(3)单体架构所有的模块开发所使用的技术一样。
微服务每个模块都可以使用不同的开发技术,开发模式更灵活。
微服务本质(1 ...
阿里云点播
开发场景:基于阿里云的云点播技术,实现上传、编辑、在线播放视频
开通阿里云点播搜索阿里云官网,搜素视频点播,开通服务(按量计费)。开启存储管理。
SDK文档查看服务端API、服务端SDK、上传SDK
API: 阿里云提供固定的地址,只需要调用这个固定的地址,向地址传递参数、实现功能 (httpclient技术可以调用api地址)SDK: sdk对api方法进行封装,更方便使用。之前使用EasyExcel调用调用阿里云提供类或则接口里面的方法是实现视频功能
由于上传视频可以进行加密,加密之后,使用加密之后地址不能进行视频播放,在数据库存储不存地址,而是存储视频id
视频播放1.在service创建子模块serice_vod引入相关依赖
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.3.3</version></depend ...
调用接口,报错没找到某某mapper接口方法
前言:我们常常对数据库进行操作都需要通过mapper接口写相关方法,然后在相应的xml文件中写sql语句。在在线教育实践项目中发现了一个异常Invalid bound statement (not found): com.zzf.eduservice.mapper.EduCourseMapper.getPublishCourseInfo以下有几种方法解决
检查报错的方法名是否错误
由于有可能是maven默认加载机制造成的问题,maven加载时候,把java文件进行编译,如果其他类型文件,则不会加载
复制xml到target目录中把xml文件放到resource目录中推荐使用:通过配置实现1 pom.xml在项目中的pom中配置如下节点
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 --><build> <resources> <resource> <directory>src/main/java</directory> < ...
多表连接查询
前言:在写在线教育项目中,回顾sql中的多表查询。本章节主要是通过学习大佬奔跑的大白啊,在此作为学习记录笔记。
正文连接查询主要分为3种:内连接、外连接、交叉连接
内连接使用比较运算符(包括=、>、<、<>、>=、<=、!> 和!<)进行表间的比较操作,查询与连接条件相匹配的数据。根据所使用的比较方式不同,内连接分为等值连接、自然连接和自连接三种。关键字 INNER JOIN
等值连接使用”=”关系将表连接起来的查询,其查询结果中列出被连接表中的所有列,包括其中的重复列
SELECT PM_ACT_JOB_RLS.*, PM_ACT_RLS.*FROM PM_ACT_JOB_RLSINNER JOIN PM_ACT_RLS ON PM_ACT_JOB_RLS.RlsPK = PM_ACT_RLS.RlsPK
自然连接等值连接中去掉重复的列,形成的连接
SELECT PM_ACT_JOB_RLS.JobPK, PM_ACT_RLS.RlsPK, RlsNameFROM PM_ACT_JOB ...
下拉框以及复选框
根据存储id和分类所有id进行比较,如果比较相同,让相同值进行数据回显
下拉列表<select> <option selected="selected">前端开发</option></select>
复选框<input type="checkbox" checked/>
单选框<input type="radio" checked/>