- 博客(31)
- 收藏
- 关注
原创 读取xml数据
1.引两个包 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> &l
2022-03-30 17:27:39 421
原创 @InitBinder处理指定前缀参数
@InitBinder("user") public void initBinderUser(WebDataBinder webDataBinder){ webDataBinder.setFieldDefaultPrefix("user."); } @InitBinder("addr") public void initBinderAddr(WebDataBinder webDataBinder){ webDataBinder.set...
2022-03-29 16:34:42 237
原创 SpringMVC学习
1.常用注解@RequestMapping @RequestMapping( value = {"2", "3"}, method = {RequestMethod.GET, RequestMethod.POST}, params = {"name=admin"}, headers = {"Host=localhost:8080"} )@RequestHeader@RequestHeader(n
2022-03-23 22:56:36 415
原创 Hadoop学习
概念分布式系统基础架构,主要解决海量数据存储及分析计算问题优势:高可靠性:底层维护多个数据副本,即使某个计算元素或存储出现故障,也不会导致数据丢失高扩展性:分配数据任务,方便拓展大量节点(可以动态添加服务器)高效性:并行工作高容错性:能够自动将失败的任务重新分配组成:HDFS:分布式文件系统namenode(nn):记录数据存储位置 存储文件的元数据,文件名,目录结构,文件属性,以及文件块列表和块所在的datanodedatanode(dn):用于具体存储数据
2021-10-20 10:57:58 111
原创 Shiro
1.组成1.Subject:应用代码直接交互的对象,代表当前用户2.SecurityManager:用于管理所有的subjects(权限认证之类的)3.Realm:用于和数据交互2.ShiroConfig配置类1.配置Realm,需要自定义类2.配置DefaultWebsecurityManger,关联Realm(方法的参数中传入)3.配置shiroFilterFactoryBean,配置拦截的请求及相关权限,需要配置DefaultWebsecurityMange,方法参数中传入anno:
2021-07-09 15:13:30 146 1
原创 REST接口
1.URIrest接口一般是为围绕资源展开的,URI表示资源,资源一般对应服务器端的实体类URI不用大写,用“-”,不用“_”,URI中的名词表示资源集合时,使用复数形式,名词对应数据库中的表,不能有动词在URI中表达层级,用于按实体关联关系进行对象导航,一般根据id导航过深的导航容易导致URI膨胀,不易维护,如 GET /zoos/1/areas/3/animals/4,尽量使用查询参数代替路径中的实体导航,如GET /animals?zoo=1&area=32.HTTP动词(Reque
2021-07-02 14:40:05 10064
原创 git学习
git:分布式版本控制系统工作区 --> git add --> 暂存区 --> git commit --> 本地库常用命令命令名称作用git init初始化本地库git status查看本地库状态git add 文件名添加到暂存区git commit -m “日志信息” 文件名提交到本地库git reflog查看历史纪录git reset --hard 版本号版本穿梭分支操作
2021-06-23 15:34:40 96
原创 正则表达式
1.限定符1.? 出现0次或者1次2.* 出现0次或者多次3.+ 出现1次或者多次4.{n} 出现n次5.{n,m} 出现n到m次6.{n,} 出现n次或者多次2.或运算a (cat|dog) 要么为a cat,要么为a dog3.字符类[abc]+ 要求匹配的字符只能取自于方框号里的内容,也可指定字符范围[a-zA-Z0-9],前面加^表示取反4.元字符1.\d 数字字符2.\w 单词字符(英文数字及下划线)3.\s 空白符(包含tab和换行符)
2021-06-22 16:16:21 127
原创 Linux文件目录权限管理
1.改变文件用户组chgrpchgrp [-R] 用户组名 文件或目录名-R 用于更改某一目录内所有的文件修改的用户组名在/etc/group文件下有记录的用户组才能改变2.改变文件所有者chownchown [-R] 用户名 文件或目录-R 连同子目录下的所有文件都要更改要更改的用户必须是已经存在于系统中的账号,也就是在/etc/password文件中有记录的用户名3.改变权限chmodLinux文件的基本权限有9个,分别是owner,group,others三种身份加各自的
2021-06-21 10:53:21 120
原创 过滤器,拦截器,切片流程
1.过滤器Filter//@Component可以在webConfig中配置,详见5public class TimeFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("time filter init"); } @Override public
2021-06-01 11:43:10 169
原创 自定义校验注解
1.写一个注解@MyConstraint//定义注解可加在那些内容上@Target({ElementType.METHOD,ElementType.FIELD})//运行时注解@Retention(RetentionPolicy.RUNTIME)//校验逻辑提供类@Constraint(validatedBy = MyConstraintValidator.class)public @interface MyConstraint { //校验注解必须有的三个属性 java.lang.
2021-05-31 17:03:02 383
原创 SpringSecurity授权
用户页面登录及未登录,简单角色权限区分1.在继承WebSecurityConfigurerAdapter的类中定义操作所需的权限 http.formLogin() //表单登录 ..... //登录配置 .and() .authorizeRequests() //下面
2021-05-28 17:11:51 125
原创 SpringSecurity
添加security配置类@Configurationpublic class BrowserSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private SecurityProperties securityProperties; @Override protected void configure(HttpSecurity http) throws Exception { .
2021-05-27 17:59:00 115
原创 2021-05-25
使用Spring MVC开发RESTful API使用URL描述资源 使用HTTP方法描述行为,使用HTTP状态码来表示不同的结果 使用json交互数据 RESTful只是一种风格,并不是强制的标准常用注解@RestController标明此controller提供RestAPI @RequestMapping及其变体,映射http请求url到java方法 @RequestParam映射请求参数到java方法的参数 @PageableDefault指定分页参数默认值编写用户详情服务
2021-05-25 18:07:55 184
原创 java8 日期与时间
标准UTC时间:yyyy-MM-ddTHH:mm:ss.SSSZjava8所有的日期与时间api都是不可变类,线程安全的Instant:代表的是时间戳LocalDate:不包含具体时间的日期,比如2014-01-14。它可以用来存储生日,周年纪念日,入职日期等。LocalTime:不含日期的时间LocalDateTime:包含了日期及时间,没有偏移信息或时区。ZonedDateTime:这是一个包含时区的完整的日期时间,偏移量是以UTC/格林威治时间为基准的。getYear,ge
2021-05-25 15:30:05 206 1
原创 流 (二)
AutoCloseable接口:package myTest;public class Test4 implements AutoCloseable{ public void doSomething(){ System.out.println("doSomething"); } @Override public void close() throws Exception { System.out.println("close");
2021-05-24 18:16:41 89
原创 collector
stream.collect()名为收集器。Collector作为collect方法的参数。Collector是一个接口,它是一个可变的汇聚操作,将输入元素累积到一个可变的结果容器中;它会在所有元素都处理完毕之后,将累积的结果转换为一个最终的表示。(这是一个可选的操作);它支持串行与并行两种方式执行。Collectors本身提供了关于Collector的常见汇聚实现,Collectors本身实际上是一个工厂。Collector:supplier:提供新的容器 accumulator:向
2021-05-21 18:07:42 221
原创 流 (一)
流的组成:源 一个或者多个中间操作 终止操作(没有终止操作中间操作不进行)流操作的分类:惰性求值(中间操作,调用终止操作才会执行中间操作) 及早求值(终止操作)流:Cillection提供了新的Stream方法 流不存储值,通过管道方式获取值 本质是函数式的,对流的操作会产生一个结果,不过并不会修改底层数据的数据源,集合可以作为流的底层数据源 延迟查找,很多流操作都可以延迟操作package myTest;import java.util.Arrays;import..
2021-05-20 18:11:03 95
原创 lambda表达式
函数式接口(在java中,lambda表达式是对象,必须依附于函数式接口):如果一个接口只有一个抽象方法,那么接口就是一个函数式接口 如果在某个接口上声明了FunctionalInterface注解,编译器会按照函数式接口的定义来要求该接口 如果某个接口只有一个抽象方法,但没有给接口声明FunctionalInterface注解,编译器依旧会看作函数式接口,或在接口中重写了Object类的方法,不会被当作抽象方法,依旧为函数式接口lambda表达式根据上下文判断参数类型及函数式接口中方法名称J
2021-05-19 17:45:25 248
原创 索引
索引:帮助MySQL高校获取数据的数据结构目的:提高查询效率(会影响到查找和排序)优势:提高数据检索效率,降低数据库的IO成本,降低了数据排序的成本,降低了CPU的消耗劣势:索引也是一张表,保存主键及索引字段,指向实体表的记录,索引也要占用空间,索引虽然提高了查询速度,但降低了更新表的速度,数据修改时,数据库不仅要保存数据,还要更新索引,索引只是提高查询效率的一个因素,需要研究建立最好的索引索引分类单值索引:一个索引只包含单个列,一个表可以有多个单列索引 唯一索引:索引列的值必须唯.
2021-05-18 18:06:38 69
原创 Redis
数据类型都使用String存储数据的弊端:浪费存储空间,redis中存大量的KV对象,key冲突几率变高 key命名时使用标志性明确的命名(业务名+工程名+模块名+有意义的键名 ) Redis常用数据类型及适用场景String:应用最广泛的数据类(独立存在,不存在关联关系) hash:存储结构化的数据,多个kv共同构成一个对象的信息 list:队列,栈,有界队列 set:去重,无序的数据结合,聚合运算(社交功能,数据去重) sortedset:带有权重的集合,按照权重排序,适用于排行,实
2021-05-17 19:58:45 75
原创 MySQL
列属性设置为null的问题NULL是默认行为,如果不指定列字段为not null,默认为NULL,NULL也会占用存储空间 NULL存在的问题与特性:NULL参与的查询不能使用“=”,需要使用 is null ,is not null ,Null会影响索引的使用,参与计算时与任何类型计算或拼接都返回NULL,NULL也会影响聚合函数,产生不同效果,NULL参与排序时null会排在正序最前,反序最后(默认规定) 代替NULL:使用特殊值取填充NULL(使用空字符串或数字0),对于已经存在的数据表,填.
2021-05-14 17:12:04 107
原创 SpringBoot
配置数据spring使用一个全局配置文件,且配置文件名固定(application),配置文件用来修改SpringBoot自动配置的默认值 配置文件可使用application.properties或者application.yml格式,yml格式紧凑(层级清晰)可读性高,推荐使用,两种配置文件都存在时,默认优先使用.properties配置文件...
2021-05-14 11:55:12 148
原创 SpringMVC
状态码HTTP状态码:1xx:服务器收到请求,需要请求者进一步操作 2xx:请求成功,操作被处理 3xx:重定向,表示要完成请求,需要进一步操作 4xx:客户端出错 5xx:服务器由于遇到错误而不能完成该请求 需要自定义返回状态码:针对不同的错误类型发送特定的错误码,客户端的定制化需求 自定义返回状态码的方法: 使用ResponseEntity类,标识整个http响应(状态码,头部信息,响应体) 自定义的异常类上加@ResponseStatus注解,value中写.
2021-05-13 18:05:44 92
原创 Spring
Soring BeanSoring Bean默认名称生成策略:先判断名称长度大于一,再判断如果前两个字母都是大写,直接返回name,不做修改,其余情况修改第一个字母为小写 避免使用开头两个连续大写字母命名,若无法避免,在getBean方法中使用正确的name参数,或者在Bean注解中主动指定名称, 或者在getBean中通过类型获取Bean@Autowired注解错误一:属性对象虽然注入了,但当前类没有被标记为Spring Bean(在类上加标明为Bean的注解) 错误二:当前类标记为Spr.
2021-05-12 18:12:52 98
原创 线程安全
Synchronized关键字JMM:java内存模型 Synchronized修饰的方法,同一时间只有一个线程访问执行,其余线程等待,当前持有线程锁的线程执行结束释放,下一个线程执行,达到线程安全 synchronized修饰的方法并不会被继承,需要在子类中重新指定 synchronized可以标注在方法声明(静态方法和非静态方法)和方法体(被synchronized包围的代码才会有同步锁,缩小同步锁的范围)上 实现:获取对象监视器(monitor)才能执行,同一时间只能获取到一个,代码块执行
2021-05-12 16:35:06 93
原创 泛型,反射,编译优化
Serializable接口序列化:将对象写入到IO流中 反序列化:从IO流中恢复对象 Serializable接口:是一个标记接口,不用实现方法(接口中没有定义方法),标记当前类对象是可以序列化的 父类没有实现序列化接口,子类实现,在父类提供无参构造函数时子类可以序列化 类中存在引用对象,当引用对象也实现了Serializable接口时这个类对象可以实现序列化 同一个对象多次序列化(之间有属性更新),会影响序列化(同一个对象序列化后会有编码,再次进行序列化时会识别到编码,不再进行序列化)泛
2021-05-11 18:13:19 279
原创 计算,集合,接口
BigDecimal(所有操作使用对象,不能进行直接数学运算,核心是精度)BigDecimal的scale精度要与小数位匹配,精度小于数据(精度丢失)会报错,大于则正常。使用setScale(精度,舍入方式) 作除法时出现除不尽的情况//divide(new BigDecimal(7),精度,舍入方式)new BigDecimal(30).divide(new BigDecimal(7),2,BigDecimal.ROUND_HALF_UP);精度问题导致比较结果与预期不一致,在对BigDe
2021-05-10 18:25:07 76
原创 空指针和异常
出现空指针异常的几种情况调用了空对象的实例方法 调用了空对象的属性 当数组是一个空对象时,取他的长度 null当作Throwable的值 方法的返回值为null,调用方法直接去使用如何避免使用前一定初始化,检查是否初始化 避免在函数中返回null,加注释 外部传值,及时进行判断自动拆箱引发的空指针问题变量赋值自动拆箱出现的空指针 方法传参时自动拆箱出现的空指针 用于大小比较的场景如何避免基本数据类型优于包装器类型,优先考虑基本数据类型 对于不确定的包装器类型,要检验是
2021-05-08 18:26:53 292
原创 数据库
DML语句1.增insert[ON DUPLICATE KEY UPDATE ....]当出现主键或者唯一索引冲突时进行的操作确认表名 确认数据库结构(列是否可为null,不可是否有默认值) 确认对应插入列的插入值清单insert into表名(必要的列名)values(插入值),(插入值)on duplicate key update 出现冲突时的操作;2.删delete确认表名 确认过滤条件 确认是只删有限条数据delete from 表名...
2021-05-07 18:02:36 90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人