自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 资源 (1)
  • 收藏
  • 关注

原创 id和instancetype的应用场景区别

在 Objective-C 中,id 是一个通用的指针类型,可以用来表示任何类型的对象。而instancetype是一个表示当前类类型的指针类型,通常用于方法的返回值类型。

2023-05-10 22:24:21 215 1

原创 Objective-C非正式协议和分类的区别

上面的例子中,我们定义了一个非正式协议 Utilities,并在其中定义了两个通用的方法 log 和 alert。然后,在 MyClassA 和 MyClassB 中,我们通过导入 Utilities.h 文件并调用其中的方法来实现日志打印和弹窗功能。当一个项目需要使用到一些通用的方法,这些方法需要在多个类中使用,那么我们就可以使用非正式协议来定义这些方法,以便于多个类之间共享这些方法。另一方面,如果我们想要将一个类的方法分成多个文件或模块中,以便于组织和管理代码,那么我们就可以使用分类。

2023-04-14 22:09:43 211

原创 SpringBoot导入Thymeleaf

SpringBoot导入Thymeleaf模版引擎前端交给我们的页面,是html页面。如果是我们以前开发,我们需要把他们转成jsp页面,jsp好处就是 当我们查出一些数据转发到JSP页面以后,我们可以用jsp轻松实现数据的显示,及交互等。jsp支持非常强大的功能,包括能写Java代码,但是呢,我们现在的这种情况,SpringBoot这个项目首先 是以jar的方式,不是war,像第二,我们用的还是嵌入式的Tomcat,所以呢,SpringBoot现在默认是不支持jsp 的。SpringBoot推荐你

2022-11-07 08:27:51 497

原创 SpringBoot静态资源的配置

SpringBoot静态资源的配置1.在SpringBoot中,我们可以使用以下方式处理静态资源webjars localhost:8080/webjars/public , static, /**, resources localhost:8080/2.优先级resources>static(默认)>public如果对您有帮助,免费的赞点一个~~~感谢🙏...

2022-11-07 08:27:07 546

原创 Java接口与抽象类

Java

2022-10-10 16:03:07 126

原创 SpringBoot自动装配原理简介

SpringBoot自动装配原理简介1.SpringBoot启动会家在大量的自动配置类2.我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中3.我们再看这个自动配置类中到底配置了哪些组件。(只要我们要用的组件在其中,我们就不需要再手动配置了)4.给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们只需要在配置文件中指定这些属性的值即可。xxxAutoConfigurartion:自动配置类 给容器中添加组件xxxProperties:封装配置文

2022-10-09 21:31:08 192

原创 Spring-Boot员工登陆页面实现

Spring-Boot员工登陆页面实现登陆1、把登录页面的表单提交地址写一个controller!<form class="form-signin" th:action="@{/user/login}" method="post"> //这里面的所有表单标签都需要加上一个name属性</form>2、去编写对应的controller@Controllerpublic class LoginController { @RequestMapping("/u

2022-09-25 10:08:20 472

原创 SpringBoot---多环境切换详解

SpringBoot—多环境切换详解profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境;多配置文件我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml , 用来指定多个环境 版本;例如写三个application.ymlapplication-dev.yml 代表开发环境配置application-test.yml 代表测试环境配置但是Springboot并不会直接启动这些

2022-09-25 10:07:34 361

原创 SpringBoot-JSR303数据校验

SpringBoot-JSR303数据校验Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的person的name属性只能支持Email格式;1.在person类上面加上@Validated注解2.在name属性加上@Email注解由于我们这里写的并不符合Eamil格式,所以加上注解后会报错。使用数据校验,可以保证数据的正确性注意:如歌加上@Email注解报错,需要导入依赖 <dependenc

2022-09-24 21:42:43 156

原创 Yaml注入配置文件

Yaml注入配置文件yaml文件更强大的地方在于,他可以给我们的实体类直接注入匹配值!demo 测试Yaml注入配置文件1、在springboot项目中的resources目录下新建一个文件 application.yml2、编写一个实体类 Dog;@Componentpublic class Dog { @Value("旺财") private String name; @Value("3") private Integer age;}3、思考,以前是如

2022-09-24 21:42:25 561

原创 Yaml语法简介

Yaml语法简介配置文件SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties- 语法结构:key=valueapplication.yml- 语法结构:key: 空格 value配置文件的作用 :修改SpringBoot自动配置的默认值比如我们可以在配置文件中修改Tomcat 默认启动的端口号!server.port=8081Yaml 概述这种语言以数据做为中心,而不是以标记语言为重点!以前的配置文件,大多数都是使用

2022-09-01 15:53:53 116

原创 Spring-boot运行原理(主启动类)

Spring-boot运行原理(主启动类)默认的主启动类//@SpringBootApplication 来标注一个主程序类 , 说明这是一个Spring Boot应用 @SpringBootApplicationpublic class SpringbootApplication { public static void main(String[] args) { //以为是启动了一个方法,实际启动了一个服务 SpringApplication.run(SpringbootApplic

2022-09-01 15:53:35 698

原创 Spring-boot运行原理(Pom.xml)

Spring-boot运行原理(Pom.xml)Pom.xml父依赖其实它主要是依赖一个父项目,主要是管理项目的资源过滤及插件!<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> &

2022-08-30 08:33:46 210

原创 第一个SpringBoot程序

第一个SpringBoot程序Spring官方提供了非常方便的工具让我们快速构建应用Spring Initializr项目创建方式一:使用Spring Initializr 的 Web页面创建项目1、打开 Spring Initializr2、填写项目信息3、点击”Generate Project“按钮生成项目;下载此项目4、解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项目导入完毕。5、如果是第一次使用,可能速度会比较慢,包比较多、需要耐心等待一切就绪。项目创建方式二

2022-08-30 08:33:24 384

原创 Vue 404处理与钩子函数

Vue 404处理与钩子函数Vue路由模式有两种hash:路径带 # 符号,如 http://localhost/#/loginhistory:路径不带 # 符号,如 http://localhost/login如果不想要url中有#号,可以改为history模式index.jsexport default new Router({ mode: 'history', routes: [ ]});404 demo1.创建一个NotFound.vue视图组件NotFoun

2022-08-21 15:31:54 295

原创 Vue路由参数传递详解

Vue路由参数传递详解这里做一个demo演示如果请求带有参数该怎么传递方式一:取值方式1.修改路由配置,主要是router下的index.js 中的path属性,增加了:id ,用来接受参数id{ path:'/main', component:Main, children:[ { path:'/user/profile/:id', name:'UserProfile', compone

2022-08-19 21:03:46 1209

原创 Vue路由嵌套详解

Vue路由嵌套详解嵌套路由又称子路由,在实际应用中,通常由多层嵌套的组件组合而成。demo1.创建用户信息组件,在 views/user 目录下创建一个名为 Profile.vue 的视图组件;<template><h1>个人信息</h1></template><script>export default { name: "UserProfile"}</script><style scoped&gt

2022-08-19 21:03:33 3164

原创 Vue+ElementUI实战

Vue+ElementUI实战使用之前创建vue-cli项目的方法1.创建一个名为hi-vue的工程vue init webpack hi-vue2.安装依赖,我们需要安装element-ui、sass-loader和node-sass# 进入工程目录cd hello-vue# 安装 element-uinpm i element-ui -S# 安装依赖npm install# 安装 SASS 加载器cnpm install sass-loader node-sass --sav

2022-08-18 23:03:14 762

原创 Vue-Router详解

Vue-Router详解Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反 掌。包含的功能有:嵌套的路由/视图表 模块化的、基于组件的路由配置 路由参数、查询、通配符基于 Vue.js 过渡系统的视图过渡效果细粒度的导航控制带有自动激活的 CSS class 的链接HTML5 历史模式或 hash 模式,在 IE9 中自动降级自定义的滚动条行为安装vue-router 是一个插件包,所以我们还是需要用 npm/c

2022-08-18 23:02:54 312

原创 webpack的简单使用

webpack的简单实用什么是webpack本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。简单的来说,WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。demo完成一个demo ,简单测试一下webpack的打包功能。首先配置webpack环境Mac安装webp

2022-08-17 23:48:44 261

原创 Vue-Cli详解

Vue-Cli详解vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板 ;预先定义好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速;主要的功能:统一的目录结构本地调试热部署单元测试集成打包上线一、配置Vue-Cli环境mac 终端命令配置环境一般需要比较高的权限,最后进入管理员模式,执行命令su 并输入密码1.首先如果npm的版本不是最新版本,在安装东西时会报错,首先更新np

2022-08-17 23:48:28 521

原创 Vue自定义事件$emit()详解

Vue自定义事件$emit()详解在组件绑定数据后,我们如果想实现一个点击删除按钮就删除这个数据的功能,那么我们需要删除vue中的数据。如何实现?vue实例和vue组件互不相干,组件和组件之间的操作可以用插槽,组件如何调用Vue实例中的方法?数据项在 Vue 的实例中,但删除操作要在组件中完成,那么组件如何才能删除Vue 实例中的数据呢?此时就涉及到参数传递与事件分发了,Vue 为我们提供了自定义事件的功能很好的帮助我们解决了这个问题;使用 this.$emit(‘自定义事件名’, 参数),操作过

2022-08-16 22:39:13 2114

原创 Vue插槽slot详解

Vue插槽slot详解在 Vue 中我们使用 元素,作为承载分发内容的出口,作者称其为 插槽,可以应用在组合组件的场景中;比如准备制作一个待办事项组件(todo),该组件由待办标题(todo-title)和待办内容(todo-items)组成,但这三个组件又是相互独立的,该如何操作呢?demoslot.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">

2022-08-16 22:38:54 271

原创 Vue中computed -计算属性详解

Vue中computed -计算属性详解计算属性的重点突出在 属性 两个字上(属性是名词),首先它是个 属性 其次这个属性有 计算 的能力(计算是动词),这里的 计算 就是个函数;简单点说,它就是一个能够将计算结果缓存起来的属性(将行为转化成了静态的属性),仅此而已;可以想象为缓存!demo这里我们编写一个demo,让页面输出当前的时间,将计算属性和普通的方法进行对比compute.html<!DOCTYPE html><html lang="en"><hea

2022-08-13 11:38:43 515 1

原创 Axios详解

Axios详解Axios 是一个开源的可以用在浏览器端和 NodeJS 的异步通信框架,她的主要作用就是实现 A JAX 异步通信。其主要功能如下从浏览器中创建XMLHttpRequests从 node.js 创建 http 请求支持 Promise API [ JS中链式编程 ]拦截请求和响应转换请求数据和响应数据取消请求自动转换 JSON 数据客户端支持防御 XSRF(跨站请求伪造)Axios官网就是一个github Github为什么要使用 Axios由于 Vu

2022-08-13 11:38:25 636

原创 Vue组件详解

Vue组件详解组件是可复用的 Vue 实例,说白了就是一组可以重复使用的模板。通常一个应用会以一棵嵌套的组件树的形式来组织:第一个Vue组件使用 Vue.component() 方法注册组件:说明:Vue.component():注册组件my-component-li:自定义组件的名字template:组件的模版当我们需要传递参数都组件时,需要使用props属性!注意:默认规则下 props 属性里的值不能为大写:component.html代码<!DOCTYPE htm

2022-08-12 20:54:36 273

原创 Vue中双向绑定数据详解

Vue中双向绑定数据详解Vue.js 是一个 MVVM 框架,即数据双向绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。这也算是 Vue.js 的精髓。你可以用 v-model 指令在表单 < input>、< textarea> 及 < select> 等元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。对v-model的理解v-model本质上是一个语法糖。如下代码本质上是<input :

2022-08-12 20:53:56 1011

原创 Vue中v-on指令详解

Vue中v-on指令详解v-on 监听事件v-on可以简写为@程序中的事件包括Vue事件、前端页面本身的一些事件!我们这里的click是vue的时间,可以绑定到Vue中的methods中的方法事件。因此写为v-on:click,不写为之前的on-clickdemo1.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Titl

2022-08-08 21:41:15 1369

原创 Vue基础语法一(判断、循环指令)

Vue基础语法一(判断、循环指令)1、v-bind现在数据和 DOM 已经被建立了关联,所有东西都是响应式的。我们在控制台操作对象属性,界面可以实时更新!我们还可以使用 v-bind 来绑定元素特性!demo01.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head&

2022-08-04 19:42:45 392

原创 第一个Vue程序

第一个vue程序

2022-07-19 23:07:27 492 1

原创 SpringMVC文件上传和下载

SpringMVC文件上传和下载SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。一、文件上传前端表单要求:为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器;对表单中的 enctype 属性做个详细的说

2022-07-16 11:40:15 144

原创 拦截器实现网页用户登陆

拦截器实现网页用户登陆实现思路1.有一个登陆页面,需要写一个controller访问页面。2. 登陆页面有一提交表单的动作。需要在controller中处理。判断用户名密码是否正确。如果正确,向session中写入用户信息。返回登陆成功。3. 拦截用户请求,判断用户是否登陆。如果用户已经登陆。放行, 如果用户未登陆,跳转到登陆页面1.编写一个登陆页面login.jsp<%@ page contentType="text/html;charset=UTF-8" language="jav

2022-06-19 14:33:59 1191 1

原创 SpringMVC拦截器详解

SpringMVC拦截器详解SpringMVC的拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。拦截器与过滤器的区别拦截器是Aop思想的具体应用,它是横切进去的,不影响你原来的功能,但可以实现拦截的效果过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是SpringMVC框架自己的,只有使用了S

2022-06-12 14:49:57 180

原创 Mac查找SSH

cd .sshcat id_rsa.pub

2022-05-30 22:51:48 451

原创 mysql路径配置

将这个加入到 open ~/.bash_profile 中

2022-05-29 17:22:44 96

原创 Ajax实现验证用户登陆

Ajax验证用户登陆我们再写一个Demo,利用Ajax实现对用户登陆的验证login.jsp注意这里的===是js中的严格等于,不仅要求值相同,类型也要相同<%-- Created by IntelliJ IDEA. User: apple Date: 2022/2/7 Time: 6:53 下午 To change this template use File | Settings | File Templates.--%><%@ page conten

2022-05-13 09:12:49 1848

原创 Ajax详解(二)

本节我们继续完成一个demo,利用Ajax获得后端的数据并展示到前端AjaxController.java @RequestMapping("/a2") public List<User> a2(){ List<User> userList=new ArrayList<User>(); //添加数据 userList.add(new User("java",1,"a")); userList

2022-05-12 15:28:07 230

原创 mac安装zsh

在 .zshrc中加入 source ~/.bash_profile,这样环境变量以后就很方便配置了搭建梯子export https_proxy=http://127.0.0.1:7890 export http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

2022-05-04 12:59:28 379

原创 最常用的linux常用命令

一、文件管理1、删除一个文件 rm +文件名rm 1.txt 2、删除一个目录 rm -r +目录名rm -r a 删除文件夹a3、拷贝 cp 文件名 目标路径cp ./1 ./feier4、拷贝一个目录 参数-acp -a ./a ../hogwarts/5、移动/重命名 mv重命名> mv 1.txt 2.txt> ls2.txt b> mv b bb> ls2.txt bb移动> ls2.txt bb> mv 2.txt b

2022-05-02 13:50:29 219

原创 Ajax详解

Ajax详解Ajax = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。传统的网页(即不用ajax技术的网页),想要更新内容或者提交一个表单,都需要重新加载整个网页。使用ajax技术的网页,通过在后台服务器进行少量的数据交换,就可以实现异步局部更新。使用Ajax,

2022-05-02 12:52:39 3245

JAVA实现UDP聊天室完整项目

JAVA实现UDP聊天室完整项目

2021-09-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除