03 2023 档案

摘要:1、控制器类的注解 (1) @Controller 作用:修饰类,一个类被它修饰,就成了控制器类,负责接收和处理 HTTP 请求,可以返回页面和数据; (2) @RestController (@Controller+@ResponseBody 的组合注解) 作用:修饰类,一个类被它修饰,就成了控制 阅读全文
posted @ 2023-03-31 21:27 Linqylin 阅读(59) 评论(0) 推荐(0) 编辑
摘要:1、SpringBoot 对视图页面的支持 SpringBoot对页面的支持有两种方式: (1)使用SpringBoot自带的模板引擎,如Thymeleaf、FreeMarker、JSP等; (2)前后端分离:这种方式前端开发和后端开发完全分离,可以由前后端两个团队分开同步开发,只需要协商好接口就行 阅读全文
posted @ 2023-03-31 21:21 Linqylin 阅读(120) 评论(0) 推荐(0) 编辑
摘要:Java 早期的 MVC 模型主要使用 Servlet 组件。用户的请求首先到达 Servlet,Servlet 作为控制器接收请求,然后调度 Java Bean 读写数据库的数据,最后将结果放到 jsp 中展现给用户。但是,Servlet 组件功能有限,而且与 jsp 的耦合度过高,使得基于 Se 阅读全文
posted @ 2023-03-31 21:17 Linqylin 阅读(83) 评论(0) 推荐(0) 编辑
摘要:1、Java Web 项目的分层架构 在企业级Web项目开发中,标准的三层架构包括:表现层、业务层、数据访问层(持久层)。三层架构中,每一层各司其职,其中: 表现层:即UI层,负责接收客户端请求,并向客户端返回结果。通常客户端使用http协议请求web层,web服务器需要接收 http 请求,完成 阅读全文
posted @ 2023-03-31 21:12 Linqylin 阅读(203) 评论(0) 推荐(0) 编辑
摘要:1、jsp 技术 在传统的Java Web项目中,一般不直接使用html页面进行网页的设计,而是使用jsp+serlvet技术进行网页设计及与服务器的交互。Jsp和serlvet是开发动态web的一门技术,特别擅长开发B/S架构的程序。 其中,jsp(Java server page,java服务器 阅读全文
posted @ 2023-03-31 20:48 Linqylin 阅读(157) 评论(0) 推荐(0) 编辑
摘要:1、SpringBoot 中 pom.xml 的特点 (1)继承了 spring-boot-starter-parent 父工程 打开项目的 pom.xml 文件,如下代码: <parent> <groupId>org.springframework.boot</groupId> <artifact 阅读全文
posted @ 2023-03-31 20:40 Linqylin 阅读(67) 评论(0) 推荐(0) 编辑
摘要:1、定义 SpringBoot 是由 Pivotal 团队在 2013 年开始研发,2014 年 4 月发布第一个版本的全新开源的轻量级框架。它基于 Spring4.0 设计,不仅继承了 Spring 框架原有的优秀特性,而且还通过简化配置,简化了 Spring 项目的初始搭建和开发过程。 Boot 阅读全文
posted @ 2023-03-31 20:20 Linqylin 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1、事务的概念 事务是一个不可分隔的工作单元,其中的 SQL 语句要么全都执行,要么全都不执行,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。在企业级应用程序开发中,事务管理是必不可少的技术,用来确保数据的完整性和一致性。 事务的四个特性:ACID  原子性(Atom 阅读全文
posted @ 2023-03-31 20:08 Linqylin 阅读(56) 评论(0) 推荐(0) 编辑
摘要:1、Java 注解 Annotation (1)注解基本概念 通过对 IOC 容器和 AOP 两个核心功能的学习,大家已经体会到了 Spring 框架的强大,但是在具体应用中,需要编写配置文件 applicationContext.xml,随着项目的扩展,该配置文件也会越来越大,对它的编写和维护也较 阅读全文
posted @ 2023-03-31 19:53 Linqylin 阅读(54) 评论(0) 推荐(0) 编辑
摘要:1、MyBatis-Plus简介 MyBatis-Plus(简称 MP),是一个 MyBatis 的增强工具包,只做增强不做改变,为简 化开发、提高效率而生。官方网址:https://baomidou.com/。MyBatis Plus 是国内团队(包 米豆) 团队开发并开源的! 代码发布地址:(国 阅读全文
posted @ 2023-03-31 17:03 Linqylin 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1、表与表的联系类型  一对一(1:1)  一对多(1:n 或 n:1)  多对多(n:m ) 2、Mybatis 中实现多表查询的重要标签 resultMap 在 Mybatis 框架中,resultMap 标签可以表示两个表之间的一对多和一对一关系。 如:一个系可以有多个学生,如果想查询每 阅读全文
posted @ 2023-03-31 16:52 Linqylin 阅读(38) 评论(0) 推荐(0) 编辑
摘要:1、抽象类 类的层次结构中,越往下继承的子类其属性和方法越来越具体。相反,越上层的祖先类其实现越抽象,甚至无法给出具体实现。例如,一个圆或矩形有面积,但祖先几何图形类的getArea()方法没法给出具体实现,这时可以定义为抽象方法。 Java中可以定义不含方法体的方法,方法的方法体由该类的子类根据自 阅读全文
posted @ 2023-03-31 16:38 Linqylin 阅读(63) 评论(0) 推荐(0) 编辑
摘要:优化 1:单独使用 MyBatis 时,可以封装一个用来获取 MyBatis中 Session 的工具类 (1) 工具类 MybatisUtil 将 Mybatis 框架中的 Session 对象的获取和关闭封装成一个类; (2) UserDaoImpl 中,改为对 MybatisUtil 类的调用 阅读全文
posted @ 2023-03-31 14:15 Linqylin 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1、项目名:英文名 2、包名:公司域名倒写,如 cn.edu.un 3、类名:大驼峰,如 UserMapper 4、方法或属性名:小驼峰,如 getUser 5、实体层:entity,model,bean,pojo(Spring 框架用, 如 cn.edu.un.pojo) 其中的类:关系表名 6、 阅读全文
posted @ 2023-03-31 13:58 Linqylin 阅读(20) 评论(0) 推荐(0) 编辑
摘要:1、局部 SQL 配置文件重要标签说明:  作用:把sql语句保存在Mybatis的局部配置文件中,给某个数据访问类使用;  根节点为<mapper>… </mapper>;  namespace:命名空间,其值为某一个dao层实现类的具体路径,表示这个类要使用相应的SQL语句。这个具体路径不 阅读全文
posted @ 2023-03-31 13:51 Linqylin 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1、编写 Mybatis 主配置文件:  mybatis.xml中重要标签说明: <!-- 配置数据库连接环境:driver、url、username、password --> <environments default="mysql"> //设置当前要使用的数据库 <!-- 开始配置mysql 阅读全文
posted @ 2023-03-31 13:35 Linqylin 阅读(52) 评论(0) 推荐(0) 编辑
摘要:1、Maven 的安装和配置 (1)Maven 的介绍 Maven 即项目对象模型(POM,Project Object Model),它通过一小段描述信息来管理项目的构建、报告和文档的项目管理工具软件。它包含了一个项目对象模型,一组标准集合,一个项目生命周期(Project Lifecycle), 阅读全文
posted @ 2023-03-31 13:09 Linqylin 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1、传统的数据库访问程序: (1)数据库访问和数据处理放在一起实现 (2)用户界面层直接调用数据访问实现 (3)整个系统功能放在同一项目中实现 2、三层架构模式 三层架构: (1)界面层(UI) 为用户提供一种交互式操作界面。 作用: 根据用户的具体需求,为每个功能模块部署输入控件、操作控件和输出控 阅读全文
posted @ 2023-03-31 12:32 Linqylin 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:以导入JDBC的jar包为例。 1、如下图,先在项目中建立一个文件夹; 2、下图中,lib 为建立的类库文件夹,可将 jar 复制到该包中; 3、下图中,右击“lib”,在出现的下拉菜单中选择“add as library”,即可将 jar 加到了项目中。 阅读全文
posted @ 2023-03-31 11:28 Linqylin 阅读(210) 评论(0) 推荐(0) 编辑
摘要:传统的Java Web应用开发时,一般使用JDBC进行数据库连接和操作SQL命令。但是,随着互联网技术的飞速发展,使用JDBC已经满足不了项目的开发需求,出现了Hibernate、MyBatis等一些优秀的持久层框架,它们结合了JDBC的优点,使得开发简捷、规范、快速,系统易维护、易扩展。 1.1 阅读全文
posted @ 2023-03-31 11:20 Linqylin 阅读(76) 评论(0) 推荐(0) 编辑
摘要:1、特点:无侵入式的给代码增加额外的功能 2、程序为什么需要代理?代理长什么样子? 对象如果嫌身上干的事太多,可以通过代理来转移部分职责。 对象有什么方法想被代理,代理就一定有对应的方法。代理里面就是对象要被代理的方法。 中介如何知道要派有唱歌、跳舞方法的代理呢? 通过接口知道 Java通过接口保证 阅读全文
posted @ 2023-03-28 21:00 Linqylin 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1、概述 反射允许对成员变量,成员方法和构造方法的信息进行编程访问。 注意:获取是从class字节码文件获取的,所以在获取前首先要获取class对象。 2、获取class对象的三种方式(类型为Class) (1)源代码阶段:方式1 全类名:包名+类名 最为常用 (2)加载阶段:方式2 一般更多的是当 阅读全文
posted @ 2023-03-28 20:16 Linqylin 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1、设计模式简介 什么是模式? 有一些问题及其解决方案不断变换面孔重复出现,在这些不同的面孔后面是共同的本质;这些共同的本质就是模式。 设计模式是特定开发场景下针对特定问题的一种解决方案。 创建型模式解决的问题就是如何创建对象,何时创建对象,它努力的让代码不要太多的关注对象的具体类型,不用关注对象的 阅读全文
posted @ 2023-03-28 14:04 Linqylin 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1、简介 常用的面向对象设计原则包括 7 个,这些原则并不是孤立存在的,它们相互依赖,相互补充。 SRP:就一个类而言,应该只有一个引起它变化的原因,也就是一个类只有一个职责,这个类只做一件事情,让一个类负责很多事情,就显得这个类很臃肿,不易复用。 OCP:对扩展开放,对修改关闭。应用程序写好了之后 阅读全文
posted @ 2023-03-28 13:35 Linqylin 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1、线程池出现原因 以前写多线程时,用到线程的时候就创建(浪费时间);用完之后线程就消失(浪费资源)。 2、线程池主要核心原理 3、线程池代码实现 (1)创建线程池 (2)提交任务 (3)所有的任务全部执行完毕,关闭线程池 e.g //1.获取线程池对象 ExecutorService pool1 阅读全文
posted @ 2023-03-27 20:57 Linqylin 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1、每个线程都有自己的栈。 所以,当在run()方法里创建一个变量时,不同的线程都有这个变量,且相互独立。 阅读全文
posted @ 2023-03-27 20:12 Linqylin 阅读(14) 评论(0) 推荐(0) 编辑
摘要:多线程的6种状态 注意:Java中没有定义运行状态,所以线程只有6种状态。因为线程抢到CPU的执行权后,就交给操作系统了,在这个运行过程中虚拟机就不用管了,所以Java没有定义运行状态。 阅读全文
posted @ 2023-03-27 19:47 Linqylin 阅读(14) 评论(0) 推荐(0) 编辑
摘要:生产者和消费者(等待唤醒机制) 生产者消费者模式是一个十分经典的多线程协作的模式 举例: 实现方式一: 线程的方法代码编写技巧,如run(): 步骤: (1)循环; (2)同步代码块; (3)判断共享数据是否到了末尾(到了末尾) (4)判断共享数据是否到了末尾(没到末尾,执行核心逻辑) wait() 阅读全文
posted @ 2023-03-27 19:40 Linqylin 阅读(41) 评论(0) 推荐(0) 编辑
摘要:1、线程的生命周期 2、线程的安全问题 因为线程在执行时,有随机性,CPU的执行权随时有可能被抢走。 解决方法:把操作共享的代码锁起来 3、同步代码块 把操作共享的代码锁起来 格式: synchronized(锁){ 操作共享数据的代码 } 特点1:锁默认打开,有一个线程进去了,锁自动关闭 特点2: 阅读全文
posted @ 2023-03-27 18:58 Linqylin 阅读(12) 评论(0) 推荐(0) 编辑
摘要:MyThread t = new MyThread(); 1、String getName() 细节: 如果没有给线程设置名字,线程也是有默认的名字的 格式:Thread-X(X序号,从0开始) 2、void setName(String name) 细节: 如果要给线程设置名字,可以用set方法进 阅读全文
posted @ 2023-03-27 18:09 Linqylin 阅读(19) 评论(0) 推荐(0) 编辑
摘要:方式一:继承Thread类的方式进行实现 步骤: 1、自己定义一个类继承Thread 2、重写run方法 3、创建子类的对象,并启动线程 e.g. public class MyThread extends Thread{ @Override public void run(){ //书写线程要执行 阅读全文
posted @ 2023-03-27 16:45 Linqylin 阅读(819) 评论(0) 推荐(0) 编辑
摘要:1、概念 线程:线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 进程:进程是程序的基本执行实体。 多线程:有了多线程,就可以让程序同时做多件事情。 多线程作用:提高效率。 多线程应用场景:软件中的耗时操作、所有的聊天软件、所有的服务器。 2、并发和并行 并发: 阅读全文
posted @ 2023-03-27 13:58 Linqylin 阅读(9) 评论(0) 推荐(0) 编辑
摘要:一、异常体系介绍 异常的最大一个类为java.lang.Throwable,其有两个子类,分别为Error和Exception。 Error:代表的系统级别错误(属于严重问题)系统一旦出现问题,sun公司会把这些错误封装成Error对象。Error是给Sun公司自己用的,不是给我们程序员用的。因此我 阅读全文
posted @ 2023-03-24 22:20 Linqylin 阅读(51) 评论(0) 推荐(0) 编辑