lombok一些注解的含义
前言
lombok一些注解的含义整理
1、@Accessors(chain = true)
链式风格,在调用set方法时,返回这个类的实例对象,比如:a.b.c
2、@Data
在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor、equals、canEqual、hashCode、toString 注解,即当使用当前注解时,会自动生成包含的所有方法;
……一位Java开发者,喜欢研究技术,同时也在学习Golang和Python中,对服务器、Linux使用比较熟悉。欢迎添加技术交流QQ群:655158296
lombok一些注解的含义整理
链式风格,在调用set方法时,返回这个类的实例对象,比如:a.b.c
在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor、equals、canEqual、hashCode、toString 注解,即当使用当前注解时,会自动生成包含的所有方法;
……git的一些常见命令操作整理
depth用于指定克隆深度,为1即表示只克隆最近一次commit,可以减少下载的容量
|
|
默认撤销,不撤销本地代码,撤销commit,并且撤销git add
|
|
不删除工作空间改动代码,撤销commit,不撤销git add
|
|
删除工作空间改动代码,撤销commit,撤销git add
……说到caffeine,一般会对比 google 家的 guava,这里只做浅析。
缓存分为本地缓存和远端缓存。
常见的远端缓存有Redis,MongoDB;
本地缓存一般使用map的方式保存在本地内存中。
一般我们在业务中操作缓存,都会操作缓存和数据源两部分。
如:put数据时,先插入DB,再删除原来的缓存;get数据时,先查缓存,命中则返回,没有命中时,需要查询DB,再把查询结果放入缓存中。
如果访问量大,我们还得兼顾本地缓存的线程安全问题。
必要的时候也要考虑缓存的回收策略。
1.1.1【必须】HTML标签操作,限定/过滤传入变量值
innerHTML=、outerHTML=、document.write()、document.writeln()时,如变量值外部可控,应对特殊字符(&, <, >, ", ')做编码转义,或使用安全的DOM API替代,包括:innerText=
|
|
1.1.2【必须】HTML属性操作,限定/过滤传入变量值
……Web后台系统应默认使用预编译绑定变量的形式创建sql语句,保持查询语句和数据相分离。以从本质上避免SQL注入风险。
如使用Mybatis作为持久层框架,应通过#{}语法进行参数绑定,MyBatis 会创建 PreparedStatement 参数占位符,并通过占位符安全地设置参数。
示例:JDBC
……maven也可以校验依赖包是有有CVE漏洞
|
|
|
|
第一次执行因下载CVE数据有些慢
……整理一份应急响应的完整流程手册,覆盖从接到告警到输出报告的全过程,Linux 为主、Windows 为辅。整体流程为:了解情况 → 遏制传播 → 排查取证 → 恢复业务 → 跟踪总结。
注意:实际应急情况复杂,需根据现场灵活处置;操作前先征得授权;整个过程中不要被现场人员的描述误导,必要的话亲自检测,不要完全相信听来的东西。
……参考dump文件的大小,如果超过6G、8G 一般我们本地电脑无法打开,可以找大容量的linux服务器,配置对应启动的jvm 内存后可以参考下面的步骤
|
|
unzip MemoryAnalyzer-1.9.0.20190605-linux.gtk.x86_64.zip
|
|
|
|
|
|
|
|
在使用maven的时候,如果我们要依赖一个本地的jar包的时候,通常都会使用<scope>system</scope>和<systemPath></systemPath>来处理。
例如:
|
|
如果你仅仅是这么做了,在你使用SpringBoot打包插件生成jar包的时候,你会发现这个jar包不会被打进去,进而出现错误。
这个就需要在maven插接中配置一个includeSystemScope属性:
官方地址: https://faker.readthedocs.io/
ruby 和 java 下都有类似的 faker 工具,但是对比过 java 的,还是 python 这个完善很多。ruby 的暂没测试
|
|
| 参数 | 说明 |
|---|---|
| city_suffix() | 市,县 |
| country() | 国家 |
| country_code() | 国家编码 |
| district() | 区 |
| geo_coordinate() | 地理坐标 |
| latitude() | 地理坐标(纬度) |
| longitude() | 地理坐标(经度) |
| lexify() | 替换所有问号(“?”)带有随机字母的事件。 |
| numerify() | 三位随机数字 |
| postcode() | 邮编 |
| province() | 省份 |
| street_address() | 街道地址 |
| street_name() | 街道名 |
| street_suffix() | 街、路 |
| random_digit() | 0~9随机数 |
| random_digit_not_null() | 1~9的随机数 |
| random_element() | 随机字母 |
| random_int() | 随机数字,默认0~9999,可以通过设置min,max来设置 |
| random_letter() | 随机字母 |
| random_number() | 随机数字,参数digits设置生成的数字位数 |
| color_name() | 随机颜色名 |
| hex_color() | 随机HEX颜色 |
| rgb_color() | 随机RGB颜色 |
| safe_color_name() | 随机安全色名 |
| safe_hex_color() | 随机安全HEX颜色 |
| bs() | 随机公司服务名 |
| company() | 随机公司名(长) |
| company_prefix() | 随机公司名(短) |
| company_suffix() | 公司性质 |
| credit_card_expire() | 随机信用卡到期日 |
| credit_card_full() | 生成完整信用卡信息 |
| credit_card_number() | 信用卡号 |
| credit_card_provider() | 信用卡类型 |
| credit_card_security_code() | 信用卡安全码 |
| currency_code() | 货币编码 |
| am_pm() | AM/PM |
| century() | 随机世纪 |
| date() | 随机日期 |
| date_between() | 随机生成指定范围内日期,参数 |
| date_between_dates() | 随机生成指定范围内日期,用法同上 |
| date_object() | 随机生产从1970-1-1到指定日期的随机日期。 |
| date_this_month() | |
| date_this_year() | |
| date_time() | 随机生成指定时间(1970年1月1日至今) |
| date_time_ad() | 生成公元1年到现在的随机时间 |
| date_time_between() | 用法同dates |
| future_date() | 未来日期 |
| future_datetime() | 未来时间 |
| month() | 随机月份 |
| month_name() | 随机月份(英文) |
| past_date() | 随机生成已经过去的日期 |
| past_datetime() | 随机生成已经过去的时间 |
| time() | 随机24小时时间 |
| timedelta() | 随机获取时间差 |
| time_object() | 随机24小时时间,time对象 |
| time_series() | 随机TimeSeries对象 |
| timezone() | 随机时区 |
| unix_time() | 随机Unix时间 |
| year() | 随机年份 |
| file_extension() | 随机文件扩展名 |
| file_name() | 随机文件名(包含扩展名,不包含路径) |
| file_path() | 随机文件路径(包含文件名,扩展名) |
| mime_type() | 随机mime Type |
| ascii_company_email() | 随机ASCII公司邮箱名 |
| ascii_email() | 随机ASCII邮箱 |
| ascii_free_email() | |
| ascii_safe_email() | |
| company_email() | |
| domain_name() | 生成域名 |
| domain_word() | 域词(即,不包含后缀) |
| email() | |
| free_email() | |
| free_email_domain() | |
| f.safe_email() | 安全邮箱 |
| f.image_url() | 随机URL地址 |
| ipv4() | 随机IP4地址 |
| ipv6() | 随机IP6地址 |
| mac_address() | 随机MAC地址 |
| tld() | 网址域名后缀(.com,.net.cn,等等,不包括.) |
| uri() | 随机URI地址 |
| uri_extension() | 网址文件后缀 |
| uri_page() | 网址文件(不包含后缀) |
| uri_path() | 网址文件路径(不包含文件名) |
| url() | 随机URL地址 |
| user_name() | 随机用户名 |
| isbn10() | 随机ISBN(10位) |
| isbn13() | 随机ISBN(13位) |
| job() | 随机职位 |
| paragraph() | 随机生成一个段落 |
| paragraphs() | 随机生成多个段落,通过参数nb来控制段落数,返回数组 |
| sentence() | 随机生成一句话 |
| sentences() | 随机生成多句话,与段落类似 |
| text() | 随机生成一篇文章(不要幻想着人工智能了,至今没完全看懂一句话是什么意思) |
| word() | 随机生成词语 |
| words() | 随机生成多个词语,用法与段落,句子,类似 |
| binary() | 随机生成二进制编码 |
| boolean() | True/False |
| language_code() | 随机生成两位语言编码 |
| locale() | 随机生成语言/国际 信息 |
| md5() | 随机生成MD5 |
| null_boolean() | NULL/True/False |
| password() | 随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母 |
| sha1() | 随机SHA1 |
| sha256() | 随机SHA256 |
| uuid4() | 随机UUID |
| first_name() | |
| first_name_female() | 女性名 |
| first_name_male() | 男性名 |
| first_romanized_name() | 罗马名 |
| last_name() | |
| last_name_female() | 女姓 |
| last_name_male() | 男姓 |
| last_romanized_name() | |
| name() | 随机生成全名 |
| name_female() | 男性全名 |
| name_male() | 女性全名 |
| romanized_name() | 罗马名 |
| msisdn() | 移动台国际用户识别码,即移动用户的ISDN号码 |
| phone_number() | 随机生成手机号 |
| phonenumber_prefix() | 随机生成手机号段 |
| profile() | 随机生成档案信息 |
| simple_profile() | 随机生成简单档案信息 |
| 参数 | 说明 |
|---|---|
| pybool() | 布尔类型 |
| pydecimal() | 数字 |
| pydict() | 字典 |
| pyfloat() | left_digits=5 #生成的整数位数, right_digits=2 #生成的小数位数, positive=True #是否只有正数 |
| pyint() | 整型 |
| pyiterable() | 迭代器 |
| pylist() | 列表 |
| pyset() | 集合 |
| pystr() | 字符串 |
| pystruct() | 结构体 |
| pytuple() | 元组 |
| 参数 | 说明 |
|---|---|
| ssn() | 生成身份证号 |
| chrome() | 随机生成Chrome的浏览器user_agent信息 |
| firefox() | 随机生成FireFox的浏览器user_agent信息 |
| internet_explorer() | 随机生成IE的浏览器user_agent信息 |
| opera() | 随机生成Opera的浏览器user_agent信息 |
| safari() | 随机生成Safari的浏览器user_agent信息 |
| linux_platform_token() | 随机Linux信息 |
| user_agent() | 随机user_agent信息 |