Java学习笔记
ChengLang_111
一枚正在学习Java的小白白
展开
-
SpringSecurity权限控制
权限管理过程中的相关概念2.1 主体英文单词:principal使用系统的用户或设备或从其他系统远程登录的用户等等。简单说就是谁使用系统谁就是主体。2.2 认证英文单词:authentication权限管理系统确认一个主体的身份,允许主体进入系统。简单说就是“主体”证明自己是谁。笼统的认为就是以前所做的登录操作。2.3 授权英文单词:authorizatio将操作系统的“权力”“授予”“主体”,这样主体就具备了操作系统中特定功能的能力。所以简单来说,授权就是给用户分配权限整个流原创 2021-09-02 15:03:08 · 160 阅读 · 0 评论 -
JAVA 小案例 巩固基础(非web)
模拟斗地主发牌需求分析:public class ChinesePoker { // 定义牌的花色 static List<String> colors = Arrays.asList("♠", "♥", "♣", "♦"); // 定义牌大小 static List<String> numbers = Arrays.asList("2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4原创 2021-05-21 16:27:36 · 116 阅读 · 1 评论 -
Java api实现微信同款排序
如图,根据微信中文名字首字母排序。中文转拼音 pinyin4j: <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> public static void main(Strin...原创 2021-03-17 16:11:27 · 327 阅读 · 4 评论 -
Java 獲取路徑
// System.out.println(this.getClass().getResource("").getPath()); // 當前類路徑 System.out.println(this.getClass().getResource("/").getPath()); // 當前類根路徑 String path = System.getProperty("user.dir"); // 當前項目根路徑 // String path = System.getProperty("user...原创 2021-02-18 15:35:03 · 58 阅读 · 0 评论 -
IDEA快捷键
1.自动补全这个快捷键基本每一行代码都会用上。简直不要太牛逼!如图。使用提示功能之后,光标在小括号里面。这行就差一个;就结束了,换成以前,需要按->到后面去补写一个分号。现在只需要Ctrl + Shift + Enter,就可以实现自动补全末尾的分号。真的很实用啊这个。一旦用上了 ,就不能拜托了类推,下图这种情况 ,就会自动补全{}``是不是很牛。赶紧去试试吧。=========================================================Ctrl原创 2021-02-05 17:12:17 · 329 阅读 · 0 评论 -
Java 注解/反射
什么是注解?内置注解元注解// 定义一个注解// 定义一个注解@Target(value = { ElementType.METHOD, ElementType.TYPE }) // 使用范围@Retention(value = RetentionPolicy.RUNTIME) // 生效范围@Documented // 表示是否将我们的注解生成在JAVADOC中@Inherited // 子类可以继承父类的注解public @interface MyAnnotaion { //原创 2021-02-04 11:53:44 · 56 阅读 · 0 评论 -
Java多线程
什么是线程?线程是程序中执行的线程。(来自JDK8API)程序一旦跑起来,就变成了进程,而线程是进程的最小单位。创建方式一: 继承Thread类Thread 类:直接继承于Object ,它是实现了Runnabble 接口的。最基本的创建使用方式:// 方式一 :1. 继承Threadpublic class TestThread extends Thread { // 2. 重写Run方法 @Override public void run() { for (int i =原创 2021-02-03 12:21:23 · 162 阅读 · 0 评论 -
防抖函数
如果一个函数内 短时间被执行很多遍,可以对其节流: // 节流函数 /** * fun 传入的函数 * delay 多少秒内不执行 * **/ debounce(fun, delay) { let timer = null; return function (...args) { // 如果delay时间内被调用,则取消上一次 if (timer) { clearTimeout原创 2021-01-29 19:54:51 · 55 阅读 · 1 评论 -
Java8新特性-TocalDate,LocalTime,LocalDateTime API
/*** TocalDate,LocalTime,LocalDateTime类的实例是不可变的对象。** 分别使表示使用ISO-8601日历系统的日期,时间,日期和时间。他们提供了简单的日期或时间,*/@Test public void test1() { // 获取 LocalTime lt = LocalTime.now(); // LocalTime LocalDate ld = LocalDate.now(); // localDate LocalDateTime l.原创 2021-01-21 15:34:18 · 82 阅读 · 0 评论 -
Java8新特性-防止空指针Optional<T> 类
Optional<T> 类(java.util.Optional)是一个容器类,代表一个值存在或不存在,原来用null表示一个值不存在, 现在 Optional 可以更好的表达这个概念,并且可以避免空指针异常 常用方法:Optional.of(T t) 创建一个Optional 实例 - t不允许为nullOptional.empty() 创建一个空的Optional 实例Optional.ofNullable(T t) 若t不为null,创建Optional.原创 2021-01-21 10:32:53 · 188 阅读 · 0 评论 -
Java8新特性-Lambda表达式-Stream API
演变过程 & 初体验当前有一个List 里面包含公司的员工信息,需求一:求 当前公司中年龄大于35岁的员工需求二:求 当前公司中工资大于5000的员工List<Employee> list = Arrays.asList( // 姓名 工资 年龄 new Employee("张三", 3888.95, 25), new Employee("李四", 7000.00, 45), new Employee("王五", 6988.95, 40), new原创 2021-01-20 15:06:16 · 206 阅读 · 5 评论 -
Spring 事务
Spring 中事务方式概述Spring框架中提供了一种声明式事务的处理方式,此方式基于AOP代理,可以将具体业务逻辑与事务处理进行解耦。也就是让我们的业务代码逻辑不受污染或少量污染,就可以实现事务控制。在SpringBoot项目中,其内部提供了事务的自动配置,当我们在项目中添加了指定依赖spring-boot-starter-jdbc时,框架会自动为我们的项目注入事务管理器对象,最常用的为DataSourceTransactionManager对象。事务特性事务具备ACID特性,分别是:原原创 2020-10-16 15:43:19 · 471 阅读 · 0 评论 -
Aop 切入点表达式
Spring中通过切入点表达式定义具体切入点,其常用AOP切入点表达式定义及说明:表-1 Spring AOP 中切入点表达式说明指示符 作用bean 用于匹配指定bean对象的所有方法within 用于匹配指定包下所有类内的所有方法execution 用于按指定语法规则匹配到具体方法@annotation 用于匹配指定注解修饰的方法bean表达式一般应用于类级别,实现粗粒度的切入点定义,案例分析:bean(“userServiceImpl”)指定一个userSe原创 2020-10-15 11:48:04 · 304 阅读 · 0 评论 -
角色编辑模块
流程 -> 客户端发起请求携带 角色id 后端服务器根据角色id 查询出角色自身信息以及相对应授权菜单的id最终结果:角色表: sys_roles角色菜单表 : sys_role_menus方案一(最简单的) ,性能略低:业务层多次进行单表查询 先查角色自身信息 再查对应菜单授权 最后在业务层进行封装pojo:RoleMapper:RolemenuMapper:业务层: @Override public SysRoleMenu finById(In原创 2020-09-27 15:49:45 · 159 阅读 · 0 评论 -
Mybatis数据入库时获得主键值
在一对多,多对多数据入库中间表时 往往需要拿到数据入库时自动生成的Id主键 <!-- useGeneratedKeys 表示使用insert操作的自增主键值 keyProperty 表示将自增主键值存储到参数对象SysRole的对应属性上 --> <insert id="insertObject" parameterType="com.cy.pj.sys.pojo.SysRole" useG原创 2020-09-27 11:42:28 · 88 阅读 · 0 评论 -
Java对象Json互转
Java对象与Json字符串互转 @Test void TestJson() throws Exception{ SysRole sysRole = new SysRole(); sysRole.setId(100); sysRole.setName("Lang"); sysRole.setNote("HR..."); sysRole.setCreatedTime(new Date()); sysRol原创 2020-09-27 09:58:44 · 108 阅读 · 0 评论 -
日志模块删除
Dao: // 基于id删除 int deleteObjects(Integer ... ids);Mapper: <!--基于条件删除 方式2--> <!-- <choose> 选择语句 <when> 类似于if <otherwise> 类似于else --> <delete id="deleteObjects">原创 2020-09-25 16:48:24 · 101 阅读 · 0 评论 -
自定义异常类
/** * 作用描述: * * @author Administrator * @date 2020/9/25 15:26 */// 注解描述的类 ,控制层全局异常处理对象@ControllerAdvicepublic class GlobalExceptionHandler { /** * 此注解中定义的异常类型 为这个方法可以处理的异常类型 , * 他可以处理这个异常以及这个异常类型的子类 * @param e * @return原创 2020-09-25 15:35:03 · 70 阅读 · 0 评论 -
SpringMVC
什么是MVCmvc 的全名是Model View Controller .Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。Springmvc的优点:(1)可以支持各种视图技术,而不仅仅局限于JSP;(2)与Spring框架集成(如IoC容器、AOP等);(3)清晰的角色分配:转载 2020-09-17 11:05:26 · 62 阅读 · 0 评论