- 博客(78)
- 收藏
- 关注
原创 资源服务工程设计
Resource-Controller@RestControllerpublic class ResourceController { @PreAuthorize("hasAnyAuthority('sys:res:create')") //注解描述方法时,表示访问此方法需要具备一定的权限 @RequestMapping("resource/select") public String doselect(){ return "Select Resour.
2021-11-03 17:37:56 201
原创 单点登录(微服务)
概念简称SSO,只需要一次登录就可以访问同一个服务器站点的所有服务实现基于用户id查找用户权限(系统基础服务)SQL语句#单表查询#基于用户id查询用户对应的角色id〔查询出的角色id可能是多个)select role_id from tb_user_roles where user_id=1;#基于角色id查询用户对应的菜单idselect menu_id from tb_role_menus where role_id in (1);#基于菜单id查询菜单权限标识select p.
2021-11-01 20:54:39 515
原创 spring Cloud网关与Filter
过滤器范例package com.jt;import java.util.List;import java.util.concurrent.CopyOnWriteArrayList;public class FilterChainTests { public static void main(String[] args) { List<Filter> list = new CopyOnWriteArrayList<>(); Fi.
2021-10-29 17:42:31 303
原创 SpringMVC与自定义拦截器
SpringMVC拦截器HandlerInterceptor/** springMVC中的拦截对象,可以在执行Controller之前执行* */public class TimeInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, .
2021-10-28 17:26:16 203
原创 Sentinel熔断处理
@SentinelResource注解的使用/** * @SentinelResource使用此注解描述的方法, * 在此方法被访问时,会在sentinel的簇点链路中显示, * 此注解中指定的名字就是资源名,我们可以对这个资源 * 的访问,按照指定的链路进行限流设计. * * 此注解中的blockHandlerClass用于指定,出现限流异常时的异常处理类, * blockHandler属性用于指定异常处理类中的方法(此方法的返回.
2021-10-28 15:37:21 1529
原创 微服务与Nacos
微服务概念:软件即服务,程序中的微服务,就是将各个业务系统的共性再进行抽取,做成独立的服务。项目结构:GitCGB2105IVProjects (工作区/空项目)├── 01-sca //(微服务父工程)├── sca-provider //服务提供方法├── sca-consumer //服务消费方法├── sca-gateway //网关服务Nacos服务注册以及负载均衡主Modulepom.xml:<m.
2021-10-22 19:29:58 342
原创 Nginx反向代理与负载均衡
概念Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。特点:1.占有内存少(<2M)2.并发能力强(220-250个/秒)3.C语言编写,对中文不友好4.注意空格端口:http默认运行端口是80https默认运行端口是443进程:Nginx每次启动会有连个进程主进程:提供反向代理服务;守护进程:防止主进程意外关闭关进程是先关守护再关主Nginx命令:在Nginx的根目录中运行,注意: Nginx.
2021-10-19 08:56:29 124
原创 项目集成6(文件上传)
文件上传步骤:1.获取图片名称2.封装文件上传目录3.检查目录是否存在4.封装文件的全路径5.上传文件@RestController@CrossOrigin@RequestMapping("file")public class FileController{ @PostMapping("upload") public SysResult upload(MultipartFile file) throws IOException { String fil.
2021-10-18 16:31:55 183
原创 项目集成5(商品列表)
自动生成时间(数据自动填充)FieldFill为enum(枚举类型),类似于选择题@Data@Accessors(chain=true)public class BasePojo implements Serializable{ @TableField(fill = FieldFill.INSERT) private Date created; @TableField(fill = FieldFill.INSERT_UPDATE) private Date upd.
2021-10-14 20:50:22 115
原创 项目集成4(商品分类)
商品分类1.编辑pojo-ItemCat@Data@Accessors(chain = true)@TableName("item_cat")public class ItemCat extends BasePojo{ @TableId(type = IdType.AUTO) private Integer id; private Integer parentId; private String name; private Boolean status;.
2021-10-13 20:14:40 245
原创 全局异常与mybatisplus
全局异常处理当前端发生异常时,前端用户无法处理@DeleteMapping("/{id}")public SysResult deleteUserById(@PathVariable Integer id){ try{ userService.deleteUserById(id); return SysResult.success(); }catch (Exception e){ e.printStackTrace(); .
2021-10-12 20:34:41 1472 1
原创 项目集成3(路由配置与列表操作)
子级路由跳转语法:<!-- 跳转关键字 --> <router-link id="/user">用户管理</router-link> <!-- 路由填充位 --> <router-view></router-view> {path:'/home',component:Home,children:[ {path:'/user',component:User} ]},路由占位符:<el-main&.
2021-10-11 19:50:47 101
原创 项目集成1(用户登录)
前端代码:login(){ //获取表单对象之后进行数据校验 //valid 表示校验的结果 true表示通过 false表示失败 this.$refs.loginFormRef.validate(async valid => { //如果没有完成校验则直接返回 if(!valid) return //如果校验成功,则发起ajax请求 const {data: result} = awa.
2021-10-09 12:34:14 239
原创 项目集成2(系统首页与用户模块操作)
用户登录动态生成秘钥:@Service //将类交给Spring容器public class UserServiceImpl implements UserService{ @Autowired private UserMapper userMapper; @Override public String findUP(User u) { byte[] bytes = u.getPassword().getBytes(); Stri.
2021-10-09 12:25:31 147
原创 axios应用与Ajax优化
axios应用请求方式:对象封装请求:axios.get(para)let url2 = "http://localhost:8090/axios/findbyIA"let dept = { deptId:103, deptName:"安保部"}axios.get(url2,{params:dept}).then(function(promise){ console.log(promise.data)})axios和restFul:模板字符串:语法ES7的写法,一对反引号进行数.
2021-09-30 14:30:09 112
原创 SpringMVC参数与前后端调用
打印SQL日志文件(application.yml)#打印SQL日志文件logging: level: com.jt.mapper: debugSpringMVC参数传值简单参数传值:@GetMapping("getmvc") public Object testDemo1(String name){ return name; }对象结构传值:@GetMapping("mvcbyobj") public Object testDe.
2021-09-29 19:30:15 187
原创 SpringBoot整合mybatis
mybatis知识补充1.参数只有一个的话,mybatis根据下标取值,所以调用参数时可以不同名字(除参数前加@Param)2.代理对象:a.JDK动态代理:特点1(要求被代理者必须实现/有接口);特点2(由jdk默认提供)b.CGLIB动态代理:特点1(不管被代理者是否有接口,都可以为其创建对象,代理对象是目标对象的子类);特点2(需要手动导入jar包);特点3(spring为了方便会自动创建jar包依赖)c.getMapper创建对象时获取的接口字节码对象时JDK内部动态为接口生成的代理对象.
2021-09-28 20:35:36 169
原创 mybatis-关联查询
一对一注意:1.如果映射的字段和对象的属性一致,则可以省略不写2.最后保留主键的字段信息3.封装单个对象使用association4.association中property代表封装对象的属性,javatype代表指定属性的类型,注意路径5.多表联查必须使用resultMap6.如果遇到关联封装,则必须全部配置映射关系,但可以在resultMap中使用autoMapping=true,这样就可以实现自动映射,不用写属性和字段名一致的映射啦@Data@AllArgsConstructor.
2021-09-27 16:23:18 201
原创 Mybatis应用
mybatis中配置别名(mybatis-config.xml)<typeAliases> <!-- 不区分大小写--> <typeAlias type="cn.test.pojo.DemoUser" alias="Demouser"></typeAlias></typeAliases>配置别名后resultType可简写为:<select id="show" resultType="DemoUser" .
2021-09-26 16:15:48 94
原创 Mybatis基本操作
入门操作@BeforeEach:测试API中的方法,在执行@Test注解之前会提前执行public class TestDemo2 { private SqlSessionFactory build; @BeforeEach public void util() throws IOException { String source = "mybatis/mybatis-config.xml"; InputStream asStream = R.
2021-09-24 16:18:22 125
原创 Spring高级应用与mybatis
Spring高级应用常规创建: 以maven方式创建工程,只需要复制除坐标之外的pom.xml部分,适用于网络不好的情况环境分割: 业务端口号不一样时,由于配置文件众多,每次修改就会非常繁琐注意:1.导入jar包时支持热部署,开发阶段有效2.让热部署有效(ctrl+alt+shift+/)#指定默认环境名称spring: profiles: active: prod---#配置环境mingcserver: port: 8080spring: config:.
2021-09-23 11:52:43 81
原创 AOP入门案例与SpringMVC整合
概念与分类概念: 切面+通知前置通知(常用于权限,缓存,开启事务,日志,以@Start)环绕通知(使用@Around),后置通知(使用@After),返回后通知,异常通知以@Aspect+@Component,注解切面类定义切点在方法上加注解@Pointcut切点表达式: *表示1个 …表示多个 *依次代表方法返回值,类名,方法名,(…)是参数列表@Pointcut("execution(* cn.tedu.service.*.*(..))")案例@Component@Aspect.
2021-09-17 17:47:06 155
原创 Spring Ioc与DI
IoCIOC(Inversion of Control),控制反转。就是指将对象的创建,对象的存储(map),对象的管理(依赖查找,依赖注入)交给了spring容器,使用对象时直接获取就行。DIDI(Dependency Injection)依赖注入 。依赖注入,即组件之间的依赖关系由容器在应用系统运行期来决定,也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。使用步骤:1.创建一个类2.创建配置文件,把类的信息配置好保存进去3.新建测试类AOP面向.
2021-09-16 17:29:16 83
原创 SpringMVC解析浏览器数据
解析get方式的请求参数注意:1.参数类型必须与请求的参数类型保持一致;2.参数名称必须与请求的参数名称保持一致3.基本类型的参数,访问时必须传参,否则400,500异常;引用类型不传入参数会使用默认值null,因此最好使用引用类型//http://localhost:8080/car/get?id=10&name=ZziQon @RequestMapping("get") public String get(int id,String name){ ret.
2021-09-14 19:33:20 193
原创 Maven、Spring Boot与Spring MVC入门
Maven概念是一个jar包管理工具(pom模型)仓库:远程仓库:国外网址,下载慢虚拟仓库:国外网址的国内镜像本地仓库:自己创建。可以离线下载坐标:groupID:分组号,常用于写公司域名artifactId:项目号,用于写项目名version:版本号依赖:每个核心jar包形成一个依赖,用于对其相关的jar包的底层导入Spring Boot特点:1.简化了maven操作2.内嵌tomcat服务器浏览器访问自定义类的方法1.在类上加上RestController(spri.
2021-09-13 17:10:35 395
原创 Vue项目创建
主要目录1.src:自己的业务文件2.components:自定义组件3.router:创建路由4.App.vue:注册组件5.main.js:入口创建步骤1.在componets里新建vue文件2.修改App.vue文件,注册刚新建文件的驱动3.启动文件:npm run dev注意1.export default:支持导出,方便其他文件调用2.路径必须以“./”开始ElementUI1.安装2.修改main.js3.变身cv战士超链接:https://element.e.
2021-09-10 20:34:58 63
原创 vue(2)
v-指令集概念: html标签中带有 v- 前缀的特殊属性一、v-model(双向绑定):双向绑定即M变化的同时,V也变化,反之亦然。二、v-html:解析M中的HTML标签语句三、v-cloak(闪现):F12打开Chrome的调试窗口,选中NetWork,在选择Slow3G,产生插值表达式加载时闪烁<style>[v-cloak]{display: none;}</style> <div id="app" v-cloak></div>注:.
2021-09-10 08:58:24 79
原创 vue(1)
概念轻量级、渐进式的mvvm框架(数据驱动、组件化),封装了DOM操作元素的API称为SPA(单一页面框架)步骤1.导入vue.js文件2.准备数据渲染区(展示数据的区域){{插值表达式}}3.使用vue准备数据MVVMM是Modle,用来封装数据的模型层V是view,用来展示数据VM是vue对象,把M和V连接起来,实现了松耦合注意事项1.不在vue指定的挂载点的范围,不能解析vue代码2.只能有一个公元素代码<!DOCTYPE html><html&g.
2021-09-08 19:40:43 67
原创 JSON相关
概念及作用概念:称为JS对象简谱,配合Ajax使用,是一个字符串作用:用于B/S之间进行数据交换,也就是js对象与json的转换定义json字符串:’ “name”:“jack” ’json对象:‘ {json串1,json串2} ’json数组:‘ [ json对象1,json对象2 ] ’...
2021-09-08 14:03:50 54
原创 Git的相关操作
作用1.开源、分布式、版本控制2.避免误操作的情况,不仅能备份文件,还可以记录文件的所有变化,恢复,多人协同开发编辑,实现功能差异版本操作结构概念上传:工作空间:在本机,存储资源,供克隆仓库时拷贝使用本地索引:给即将上传的资源设置索引,提高提交效率,又称暂存区本地仓库:个人计算机上的目录,大部分提交都是提交到本地仓库,不依赖网络,最后一次会推送到远程仓库。远程仓库:可以看做是github,提供web服务供方便下载、查看、提交、存储。下载:从远程仓库获取资源常用命令add:本机—.
2021-09-01 20:53:04 70
原创 单例设计模式
设计模式概念:前人总结出来的值得学习的编程套路,一共有23种单例设计模式作用:确保一个类在内存中的对象只有一个,节省系统内存空间,控制资源的使用实现方案1(饿汉式):注意:1.构造方法是与类同名且没有返回值类型的方法,创建对象时使用;把构造方法私有化的目的是为了不让外界随意调用本方法,实例化本类对象。2.给外界提供一个公共的全局访问点3.需要将本方法设置为静态,这样就可以通过类名直接调用4.创建出来的对象也需要改为静态,因为方法也是静态的,静态只能调用静态public class S.
2021-08-24 14:46:23 64
原创 Java线程池
创建方式1.Executors是用来辅助创建线程池的工具类对象,常用方法是newFixedThreadPool(int)这个方法可以创建指定数目的线程池对象。创建出来的线程池对象是ExecutorService:用来存储线程的吃的,负责:新建/启动/关闭线程2.excute(目标业务类对象对象):让线程池中的线程来执行业务,每次调用都会将一个线程加入到就绪队列package cn.tedu.ticked;import java.util.concurrent.ExecutorService;.
2021-08-20 16:19:12 79
原创 JAVA异常
异常继承结构Throwable(顶级父类):1.Error(错误)2.Exception(异常)ArithmeticException:算数异常异常捕获try{ 可能会出现问题的代码块}catch(要匹配的异常类型 异常名){ 解决方案}拓展1.是一种通用的解决方案,是多态的经典实现2.关于多态,我们并不关心具体的异常类型,而是统一将所有的异常类型看作是父类类型来处理,提供的是通用的解决方案,所以异常处理可以嵌套,也可以不嵌套注意:运行时一场可以不做编码处理,只不过有时运.
2021-08-10 17:07:01 85
原创 XML解析
操作xml文档操作XML文档,将文档中的数据读取到内存中1.解析(读取):将文档中的数据读取到内存中2.写入:将内存中的数据保存到文档中。持久化存储解析xml方法1.DOM:将标记语言文档一次性加载进内存,在内存中形成一颗DOM树优点:操作方便,可以对文档进行CRUD的所有操作缺点:占内存2.SAX:逐行读取,基于事件驱动的。优点:不占内存缺点:只能读取常见解析器1.JAXP(挺烂的,sun公司提供,支持DOM和SAX)2.DOM4J(优秀,基于DOM)3.Jsoup(jsou.
2021-06-03 22:21:20 133
原创 XML概念与约束
概念可扩展标记语言(可扩展:标签都是自定义的)功能存储数据(1.配置文件; 2.在网络中传输)与HTML的区别1.XML标签都是自定义的,HTML是预定义2.XML的语法严格,HTML比较松散3.XML存储数据,HTML展示数据语法1.后缀名为.xml2.第一行必须定义为文档申明<?xml version='1.0' ?>3.有且仅有一个根标签4.属性值必须用引号(单双均可)5.标签必须正确关闭6.标签区分大小写组成部分*文档声明格式:<?xml 属性.
2021-06-03 10:00:45 92
原创 Bootstrap+js案例
<!doctype html><html lang="zh-CN"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个met
2021-05-24 15:46:55 366
原创 Bootstrap全局css样式及其组件插件
全局css样式按钮 :btn btn-default图片 :Responsive image(图片在任意大小窗口宽度为100%)图片形状:img-rounded:方形img-circle:圆形img-thumbnail:相框表格表单:<form> <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input.
2021-05-23 16:27:58 203
原创 Bootstrap入门
概念一个前端开发的框架框架:一个半成品软件,开发人员可以在框架基础上再进行开发,简化编码好处:1.定义了很多的css样式和js插件。我们开发人员可以直接使用这些样式和插件得到丰富的页面效果2.响应式布局(同一套页面可以兼容不同分辨率的设备)<!doctype html><html lang="zh-CN"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Comp.
2021-05-22 16:14:15 143
原创 js事件
概念事件:某些操作事件源:按钮、文本框等监听器:代码注册监听:将事件、事件源、监听器结合在一起。党事件源上发生了某个事件,则触发执行某个监听器代码。常见事件onclick:单击ondnlclick:双击onblur:失去焦点onfocus:获得焦点onload:加载事件onmouseover:鼠标移到某元素之上onmouseout:鼠标从某元素移开onkeypress:某个键盘按键被按下并松开onchange:域的内容被改变onselect:文本被选中onsubmit:确认.
2021-05-20 20:37:44 65
原创 DOM使用案例
动态表格添加与删除<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> table{ border: 1px solid; margin: auto; width: 500px;.
2021-05-20 15:38:59 164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人