自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android TV开发的焦点记忆 焦点移动到列表中的某一项中,焦点移出去,在回来时焦点还要定位到原来的item上

当焦点从 RecyclerView 上移出的时候,需要保存 RecyclerView 当前聚焦的 View ,下次 RecyclerVlew 将要获得焦点的时候,主动聚焦到上—次聚焦的 View 上。

2022-11-01 11:11:54 1436 2

原创 Linux下chmod命令的含义

在Linux文件系统中,文件基本上被分为三个属性:可读( r )、可写( w )、可执行( x )。使用命令可以查看每个文件的权限,如果我们需要修改某个文件权限的时候,就需要使用到命令了,平时也经常能够看到某些博客在解决没有权限这个问题上面直接给读者展示了一波骚操作执行该命令之后就有权限了,这个 777 所代表的的就是赋予这个文件所有权限了。权限分为三种:可读( r = 4 )、可写( w = 2 )、可执行( x =1 )。其中三个数字顺序所代表的含义是:例如,执行下面这条命令之后,test.txt

2022-07-12 14:14:06 1766

原创 如何查看 redis 服务是否启动

方法一ps -ef |grep redis方法二lsof -i :6379方法三netstat -tnlp |grep redis

2021-12-13 15:13:34 4737

原创 SpringBoot加上跨域注解@CrossOrigin启动报错的问题

写本文的目的是记录一下这个错误(降低版本也是可以解决这个问题的)@CrossOrigin注解是用来完成跨域请求的。在以前的版本中,通常是以下面这种写法来使用的,表示session也是可以支持跨域请求的,多次请求都是用一个session。@CrossOrigin(allowCredentials = "true", allowedHeaders = "*")但是在最新的 2.5.2 版本中,使用这种方式运行项目会报错,报错信息如下:Error starting ApplicationContex

2021-08-22 18:47:45 1800 3

原创 SpringBoot2 学习笔记(6)——自定义内容协商

什么是内容协商呢 ? 简单来说,就是根据客户端接收能力不同,返回不同媒体类型的数据。我想要他返回的是 xml 就返回 xml ,想要他返回图片就是图片,比如我现在客户端就只能接收json,那么他就必须给客户端返回json。而告诉服务器本客户端可以接收的数据类型的字段被放在请求头的 Accept 字段中默认情况下springboot返回的是 */ * 我们写一段程序来测试一下自定义一个 Person 类,里面包含姓名,年龄和生日等信息,现在返回这个对象中的数据,看一下会是以哪种数据类型返回的。

2021-07-15 09:28:45 410 2

原创 Spring Boot 2 学习笔记(5)——普通参数及基本注解

1.参数注解下面我们常用的这些注解:@PathVariable(路径变量)@RequestHeader(获取请求头)@RequestParam(获取请求参数)@CookieValue(获取cookie值)@RequestBody(获取请求体[POST])@RequestAttribute(获取request域属性)@MatrixVariable(矩阵变量)首先,来看一下 @RequestAttribute 注解@RequestAttribute获取request域属性在UrlPat

2021-07-13 10:51:27 144

原创 Spring Boot 2学习笔记(4)——请求映射

Rest的使用与原理我们以前写一个请求的时候总是会在@RequestMapping里面写上/getUser 获取用户 、 /deleteUser 删除用户 、 /updateUser 修改用户 、 /saveUser 保存用户这类的请求,但是现在SpringBoot为我们提供了另外的一种方式来进行这些操作。springboot 使用HTTP请求方式动词来表示对资源的操作 现在我们只需要写一个 /user 用GET来获取用户 、 DELETE来删除用户 、 PUT

2021-06-26 10:41:49 142

转载 【编译原理】判断文法是几型文法

首先,应该明确,四种文法,从0型到3型,其规则和约定越来越多,限制条件也越来越多,所以,我们判断时可以从最复杂的3型进行判断,依次向下判断,如果不符合3型的,那再看是不是2型的,不是2型的,再看是不是1型的。3 型文法遵循什么规范呢?第一点: 左边必须只有一个字符,且必须是非终结符;第二点: 其右边最多只能有两个字符,且当有两个字符时必须有一个为终结符而另一个为非终结符。当右边只有一个字符时,此字符必须为终结符。第三点: 对于3型文法中的所有产生式,其右边有两个字符的产生式,这些产生式右边两个字符中

2021-06-23 20:09:13 1733

原创 Spring Boot 2 学习笔记(3)——静态资源访问

静态资源目录Spring Boot 为我们写好了默认的静态资源目录/static (或 /public 或 /resources 或 /META-INF/resources)如果你不想用这种方式,想自己创建这个目录来放静态资源,可以在配置文件中加入下面的代码:spring: web: resources: static-locations: 自定义的文件夹路径现在有一个图片放在 static 目录下,那么我们可以通过这样直接访问到这个资源使用 : 当前项目根路径 / +

2021-06-23 20:07:01 198 1

原创 SpringBoot 2学习(2)——了解配置原理

Spring Boot的特点首先我们要知道 Spring Boot 在底层已经为我们添加好了很多依赖。比如我们常用的Tomcat,Spring,SpringMVC这些,甚至连mysql数据库的依赖也为我们添加好了不过 SpringBoot 2.5.0 使用的mysql依赖版本是8.0.25的,如果还在使用 mysql 5 版本的小伙伴们就需要在项目的 pom.xml 文件中再次指定自己所用的依赖版本号。(因为 maven 在引入依赖时采取就近原则,你如果指定了依赖版本号的话,它会加载离它近的,而不会去

2021-06-02 20:33:51 142 2

原创 SpringBoot 2.x初体验

SpringBoot学习笔记首先,什么是微服务呢?James Lewis and Martin Fowler (2014) 提出微服务完整概念。微服务是一种架构风格一个应用拆分为一组小型服务每个服务运行在自己的进程内,也就是可独立部署和升级服务之间使用轻量级HTTP交互服务围绕业务功能拆分可以由全自动部署机制独立部署去中心化,服务自治。服务可以使用不同的语言、不同的存储技术参考微服务前言写下本文时springboot最新版本已经到了2.5.0了。下面来说一下开发springb

2021-05-30 21:09:14 97 3

原创 SpringMVC学习笔记(3)——异常处理

SpringMVC框架采用的是统一,全局的异常处理。把 controller 中的所有异常处理都集中到一个地方。 采用的是 AOP 的思想。把业务逻辑和异常处理代码分开,解耦合。@ExceptionHandler 注解使用注解@ExceptionHandler 可以将一个方法指定为异常处理方法。该注解只有一个可选属性 value,为一个 Class<?>数组,用于指定该注解的方法所要处理的异常类,即所要匹配的异常。而被注解的方法,其返回值可以是 ModelAndView、String或

2021-05-23 09:59:06 79

原创 SSM整合开发(SpringMVC + Spring + MyBatis)(初次开发)

SSM 编程,即 SpringMVC + Spring + MyBatis 整合,是当前最为流行的 JavaEE 开发技术架构。其实 SSM 整合的实质,仅仅就是将 MyBatis整合入 Spring。因为 SpringMVC原本就是 Spring的一部分,不用专门整合。首先,来理一下开发SSM项目的思路使用springdb的mysql库,表使用student ( id auto_increment,name,age )新建maven web项目加入依赖springmvc , spri

2021-05-20 15:16:56 251 2

原创 关于JSP页面中访问地址前加“/“与不加的区别

我们在jsp ,html中使用的地址, 也就是在前端页面中的地址,一般都是相对地址,但是在浏览器进行访问的时候肯定用的是绝对地址。不加"/"的情况我们访问的地址是正常的,页面也是可以正常访问的当你加上"/"之后这个时候我们再重新运行项目会怎么样呢?我们发现,项目的访问地址这里发生了变化,加上 “/” 之后,访问地址中的项目名字缺失了,也就导致发生404错误。解决办法:第一种方法,也是最简单最快速的方法,直接把前面的 “/” 去掉就可以了第二种方法:在 “/” 前面加入${pageCo

2021-05-16 15:45:56 644

原创 SpringMVC学习笔记(2)——处理器方法的参数

处理器方法可以包含以下四类参数,这些参数会在系统调用时由系统自动赋值,即程序员可在方法内直接使用。HttpServletRequestHttpServletResponseHttpSession请求中所携带的请求参数1 逐个参数接收例如:现在页面的请求如下:怎么样去接收这些参数,然后进行后续的业务呢?我们可以在Controller中这样写,就能把接收到的参数传递给业务方法了如果页面中的参数和形参列表名不一致时,需要在形参名前面加上@RequestParam注解,例如,此时页面传递过

2021-05-16 15:21:16 180

原创 SpringMVC学习笔记(1)——DispatcherServlet中央调度器、创建第一个springmvc项目

SpringMVC简介SpringMVC :是基于spring的一个框架, 实际上就是spring的一个模块, 专门是做 web 开发的。可以理解是servlet的一个升级。 web 开发底层是servlet , 框架是在servlet基础上面加入一些功能,让你做 web 开发方便。SpringMVC就是一个Spring。 Spring是容器,ioc能够管理对象,使用<bean>, @Component, @Repository, @Service, @ControllerSpringMV

2021-05-14 22:13:10 965 3

原创 Linux中断下root用户执行**.sh脚本文件权限不够解决办法

比如我写了一个lc.sh的shell脚本,现在我执行它出现了权限不够的提示。解决方法:chmod 777 ./lc.sh或者chmod +x ./lc.sh然后再执行这个脚本./lc.sh执行成功!

2021-05-12 12:00:51 2726

原创 Spring学习(7)——Spring与Web(整个项目使用 servlet ,spring + mybatis)

上次将Spring和Mybatis进行了整合,现在来尝试将这两个框架写一个简单的Web项目。首先创建一个新的module类型是 maven-archetype-webapp将上个项目的代码全部导入将 spring-mybatis 项目中以下内容复制到当前项目中:上个项目链接(1)Service 层、Dao 层全部代码(2)配置文件 applicationContext.xml 及 jdbc.properties,mybatis.xml(3)pom.xml(4)加入 servlet ,jsp

2021-05-03 23:06:12 391

原创 Spring学习(6)——Spring事务处理

事务原本是数据库中的概念,在 Dao 层。但一般情况下,需要将事务提升到业务层,即 Service 层。这样做是为了能够使用事务的特性来管理具体的业务。在 Spring 中通常可以通过以下两种方式来实现对事务的管理:(1)使用 Spring 的事务注解管理事务(2)使用 AspectJ 的 AOP 配置管理事务首先,我们来思考几个问题:什么是事务?在什么时候想到使用事务?通常使用JDBC访问数据库, 还是mybatis访问数据库怎么处理事务?上面3问题中事务的处理方式,有什么不足?怎么解

2021-05-03 14:58:04 258

原创 Spring学习(5)——Spring集成Mybatis

经过之前的学习,已经将mybatis和spring的基本用法掌握了,下面开始进行的是将这两个框架进行整合。用的技术是Spring中的IoC。为什么使用IoC呢?能把mybatis和spring集成在一起,像一个框架, 是因为ioc能创建对象。可以把mybatis框架中的对象交给spring统一创建, 开发人员从spring中获取对象。开发人员就不用同时面对两个或多个框架了, 就面对一个spring。将 MyBatis 与 Spring 进行整合,主要解决的问题就是将 SqlSessionFactory

2021-05-02 14:30:01 383

原创 Spring学习(4)——AOP面向切面编程(Aspect Oriented Programming)

Spring的另一核心功能AOP什么是AOP?AOP编程术语1.切面(Aspect)2.连接点(JoinPoint)3.切入点(Pointcut)4.目标对象(Target)5.通知(Advice)利用AOP编写一个小项目@Before 前置通知@AfterReturning 后置通知@Around 环绕通知 (最常用)@AfterThrowing 异常通知 (了解)@After 最终通知(了解)@Pointcut 定义切入点什么是AOP?AOP(Aspect Orient Programming)面向

2021-04-29 22:34:19 368

原创 【JavaSE】类加载器和双亲委派机制

类加载器假设有这祥一段代码:String s= " abc" ;代码在开始执行之前,会将所需要类全部加载到JVM当中。通过类加载器加载,看到以上代码类加载器会找string.class文件,找到就加载,那么是怎么进行加载的呢?首先通过"启动类加载器"加载。注意:启动类加载器专门加载: jdk1.8.0_101\jre\lib\rt.jar,rt.jar中都是JDK最核心的类库。如果通过"启动类加教器"加载不到的时候,会通过"扩展类加载器"加载。注意:扩展类加载器专门加载: jdk1.8.0_

2021-04-25 21:18:05 40

原创 Spring学习(3)——IoC控制反转(Inversion of Control)

spring的第一个核心功能 IoCIoC在学习Spring之前的体现依赖注入(DI)基于XML的DIset方式注入IoC (Inversion of Control) : 控制反转, 是一个理论,概念,思想。描述:把对象的创建,赋值,管理工作都交给代码之外的容器实现, 也就是对象的创建是由其它外部资源完成。控制: 创建对象,对象的属性赋值,对象之间的关系管理。反转: 把原来的开发人员管理、创建对象的权限转移给代码之外的容器实现。 由容器代替开发人员管理对象。创建对象,给属性赋值。正转:由开发人员

2021-04-25 19:56:30 329

原创 解决IDEA在使用Spring创建第二个Module时,.iml文件无法导入pom.xml依赖问题

因为在网上并没有找到与我这个情况类似的,也没有找到解决方法,最后我自己找到了原因并在此为和我出现同样情况的程序猿们提供一个解决办法。正文在创建完第一个简单的spring项目并且完成测试后,想要再重新建个module来学习spring时出现了以下问题:pom.xml文件一切正常,点maven重新加载也没有报错,但是出现下面这种情况:pom.xml文件中已经清清楚楚的加入了依赖,但是爆红代码提示的解决办法却依然是让我加classpath,于是我查看了maven中这个module的信息发现第二个项

2021-04-23 22:59:28 1240 1

原创 Spring学习(2)——写一个简单的spring项目

创建一个maven项目创建项目,这里我们选择quickstart就行了修改pom.xml文件将<build>标签中的代码先删掉,因为我们还用不到这些,然后导入spring依赖(这里有个小bug,我想用当前最新版的5.3.6的Spring,但是maven似乎没找到这个版本的jar包,之后被迫改为了5.2.5的) <dependency> <groupId>org.springframework</groupId> <ar

2021-04-23 21:54:05 254

原创 Spring学习(1)——Spring简介

Spring的发展及其特点Spring 开源框架的第一个版本由Rod Johnson于2003年开发并发布,目的是解决企业应用开发的复杂性问题。经过多年的发展,Spring成为JavaEE开发中重要框架之一。Spring 使用基本的 JavaBean 来完成以前只可能由EJB完成的功能。它不仅仅针对某一特定层,而是贯穿于表现层、业务层及持久层,与已有框架进行友好的整合。从简洁性、可测试性、松耦合的角度讲,任何Java应用都或多或少受到Spring影响。控制反转不直接创建对象,但是描述创建它们的方式。在

2021-04-22 20:15:56 175

转载 Mybatis学习笔记(四)——动态sql

什么是动态sql?动态 SQL,通过 MyBatis 提供的各种标签对条件作出判断以实现动态拼接 SQL 语句。这里的条件判断使用的表达式为 OGNL 表达式。常用的动态 SQL 标签有 < if>、< where>、< choose/>、< foreach>等。MyBatis 的动态 SQL 语句,与 JSTL 中的语句非常相似。动态 SQL,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件进行查询。提交的查询条件不同,执行的 S

2021-04-22 13:29:41 148

原创 Mybatis学习笔记(三)——mybatis的输出结果

1.resultType期望从这条语句中返回结果的类全限定名或别名。 注意,如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身的类型。 并且resultType 和 resultMap 之间只能同时使用一个。resultType结果类型, 指sql语句执行完毕后, 数据转为的java对象, java类型是任意的。处理方式:mybatis执行sql语句, 然后mybatis调用类的无参数构造方法,创建对象。mybatis把ResultSet指定列值付给同名的属性。例如:<se

2021-04-20 20:33:35 255

原创 Mybatis学习笔记(二)——深入理解参数

1.parameterTypeparameterType: 接口中方法参数的类型, 类型的完全限定名或别名。这个属性是可选的,因为 MyBatis 可以推断出具体传入语句的参数,默认值为未设置(unset)。接口中方法的参数从 java 代码传入到mapper 文件的 sql 语句。默认支持的别名:别名映射的类型_bytebyte_longlong_shortshort_intint_integerint_doubledouble_f

2021-04-19 21:04:31 125

原创 Mybatis学习笔记(一)——记录下自己的第一个mybatis项目

(注明一下我的环境:IDEA2020.1 mysql8.0 mybatis3.5.6)其实可以直接将mybatis视为JDBC的强化版来理解(相当于将JDBC的操作封装了)具体如何编写代码可以参考mybatis3.5.6中文手册大致流程第一个入门的mybatis例子实现步骤:新建的student表加入maven的mybatis坐标,mysql驱动的坐标(依赖)创建实体类,Student创建持久层的dao接口,定义数据库操作的方法创建一个mybatis使用的配置文件

2021-04-13 22:16:03 87

转载 【转】最详细的Log4J使用教程一、入门实例二、Log4J基本使用方法三、Spring中使用Log4J四、实战经验总结

原文地址:http://www.codeceo.com/article/log4j-usage.html日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j可以免费下载到Log4j最新版本的软件包。一、入门实例1、 新建一个Java工程,导入Log4j包,pom文件中对应的配置代码如下:<!-- log4j support --><dependency&g

2021-04-11 10:36:11 916

原创 Java IO流文件操作实现目录拷贝(复制)

话不多说,直接上代码!import java.io.*;/* 拷贝目录 */public class CopyAll { public static void main(String[] args) { //拷贝源 File srcFile=new File("E:\\vivado"); //目标 File destFile=new File("D:\\a\\b\\c"); //调用拷贝方法

2021-03-24 11:18:28 445

原创 java写一个简单的日志工具

实现一个简单的日志文件(其实就是测试一下标准输出流)import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintStream;import java.text.SimpleDateFormat;import java.util.Date;public class Logger { /* 记录日志的方法 */ public static

2021-03-21 16:09:27 380

原创 Java TreeMap比较方式

放到TreeMap或者TreeSet集合中的元素要想排序,包括两种方式:第一种:放在集合中的元素实现java.lang.Comparable接口。第二种:在构造TreeSet或者TreeMap集合的时候给它传一个比较器对象。Comparable 和 Comparator 怎么选择?当比较规则不会发生改变时,或者说当比较规则只有一个的时候,建议实现Comparable接口。如果比较规则有多个,并且需要多个比较规则之间频繁切换,建议使用Comparator接口。Comparator接口的设计符合OC

2021-03-16 16:23:10 386

原创 Java哈希表数据结构

我们先将哈希表数据结构看成是这个样子:那么整个map就是下图所示:然后我们再来看put(key,value)和get(key)方法的实现原理。map.put(key,value)实现原理:第一步,先将key,value封装到Node对象中。第二步,底层会调用k的hashCode()方法得出hash值。然后,通过哈希函数/哈希算法,将hash值转化为数组下标,下标的位置如果没有任何元素,就把Node添加到这个位置上了。如果说下标的位置上有链表,此时会拿着key和链表上的每一个节点中的key进行

2021-03-14 15:20:01 249 3

原创 Java中常用的集合类

Java中常用的集合集合概述Collection接口的集合List集合Set集合集合概述什么是集合?集合有什么用? 数组其实就是一个集合。集合实际上就是一个容器,可以用来容纳其它类型的数据。集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说是集合中存储的是引用)例如:list.add(64);// 自动装箱 Integer集合在java中本身是一个容器,是一个对象。集合在任何时候都是“引用”。所有的集合类和集合接口都在java

2021-03-07 11:05:34 583 1

原创 使用IDEA+maven搭建SSH(struts2+hibernate5+spring5)环境

前言最近要使用 SSH 来编写期末的大作业,之前也在网上查阅了很久,也试出了很多的问题。本次项目,我将用一个简单的登录案例实现 SSH 的项目整合一、项目环境搭建本人使用的是IDEA2020.1.2,mysql8.0.20,tomcat9.0.8创建一个新项目注意不能选错了这里我是使用IDEA默认的maven配置配置spring依赖 <!-- spring-context --> <dependency> <groupId>.

2020-12-13 16:31:24 1218 2

原创 《Web前端设计与开发-HTML+CSS+JavaScript+HTML 5+jQuery》-漫步时尚广场代码-6

Web前端设计与开发-课后任务-漫步时尚广场任务第五章源码前台模块shoppingShow_goods.htmlshoppingShow_goods_byScript.html后台模块css文件top.csslist.cssleft.csslayout.csshtml文件top.htmlshoplist.htmlshop_search.htmlmain.htmlleft.html注: 素材图片路径需要根据实际情况修改前台模块shoppingShow_goods.html<!DOCTYPE ht

2020-05-27 11:23:53 2152

原创 《Web前端设计与开发-HTML+CSS+JavaScript+HTML 5+jQuery》-漫步时尚广场代码-5

这里写目录标题第五章任务5-1shoppingShow_frame.htmlshow_frame任务5-2第五章注: 素材图片路径需要根据实际情况修改任务5-1shoppingShow_frame.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmln

2020-05-21 08:29:18 1389 1

原创 《Web前端设计与开发-HTML+CSS+JavaScript+HTML 5+jQuery》-漫步时尚广场代码-4

Web前端设计与开发-课后任务-漫步时尚广场任务源码第四章任务4-1任务4-2第四章注: 素材图片路径需要根据实际情况修改任务4-1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><

2020-05-21 08:07:34 1662 1

空空如也

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

TA关注的人

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