即时通讯平台项目测试 http://8.130.98.211:8080/login.html项目访问地址:即时通讯平台本篇文章进行项目主页面的测试。在测试前需要先对待测内容进行分类,可以分为:个人信息设置、发送/接收消息、添加好友、创建群聊、好友搜索。
Spring--Bean的作用域,生命周期 Spring框架中的Bean有多种作用域,包括Singleton(单例)、Prototype(原型)、Request、Session、Application和WebSocket。Singleton是默认作用域,每个Spring IoC容器内同名Bean只有一个实例。Prototype则每次请求都会创建新的Bean实例。Bean的生命周期大致包括实例化、属性赋值、初始化、使用和销毁等步骤。
快速入门Spring Data JPA Spring Data JPA是Spring Data框架的一部分,简化数据库的CRUD操作。通过自动生成功能,一般用于简单查询,复杂动态SQL可使用MyBatis。入门步骤包括:创建数据库和表,创建Java实体类,使用Lombok注解减少样板代码,定义Repository接口继承CrudRepository,最后在Service层实现业务逻辑。Spring Data JPA根据实体类的@Id注解判断是插入还是更新数据,无初始值时生成新ID并插入,已有值则根据ID查找并更新。
Spring IoC和DI Spring是一个依赖注入(Dependency Injection, DI)和控制反转(Inversion of Control, IoC)容器。IoC意味着应用程序不再手动创建和管理对象,而是由Spring容器负责对象的创建和管理,包括它们的依赖关系。这样可以减少代码的耦合度,提高可测试性和灵活性。DI是IoC的一个具体实现,它通过容器将依赖的对象注入到需要它们的组件中,而不是让组件自己去找依赖。例如,一个类A依赖于类B,传统做法是在类A中通过`new B()`创建B的实例。但在Spring中,类A
Linux中的常用基础操作 `ls` 命令用于列出当前目录下的子目录和文件;`ls -a` 列出包括隐藏文件的所有内容;`ls [目录名]` 列出指定目录的内容;`pwd` 显示当前工作目录;`touch` 创建新文件;`mkdir` 创建目录;`vim` 编辑文件;`rm` 删除文件或目录;`cp` 复制文件或目录;`man` 查看命令手册;`ctrl+l` 清屏;`cd` 改变目录;`grep` 在文件中搜索特定字符串;`ps -ef` 查看所有运行的进程;`netstat` 显示网络连接状态。
Spring中的事务和事务的传播机制 事务是一组操作的集合,不可以被分割。事务会把所有的操作作为一个整体,这组操作要么全部成功,要么全部失败。此时A当中的所有操作都生效开启事务后只有这种情况下A中的逻辑才生效。Spring中事务的实现有两种编程式(手动操作事务)提交事务回滚事务注解式(利用注解自动实现事务)rollbackFor手动回滚事务事务隔离级别事务的传播机制
Spring AOP -- 面相切面编程 基于注解 @Aspect;切点表达式;通知类型;多种通知类型的执行顺序;@Pointcut;多个切面类的执行顺序;@Order;基于自定义注解;给已有的注解进行功能的增强;AOP的优势:代码无侵入:不修改原始的业务方法,就可以对原始的业务方法进行了功能的增强或者是功能的改变;减少了重复代码;提高开发效率;维护方便。
统一功能处理----拦截器 拦截器是Spring框架提供的核心功能之一,主要用来拦截用户的请求,在指定方法前后,根据业务需要执行预先设定的代码。拦截器就像小区门口的保安一样,当有人(外部请求)想要进入小区,保安就会先验证他的身份,身份正确才会放行;再你出小区后会做一些善后工作(如:关门……)。
统一数据返回格式 及 可能遇到的问题;统一异常处理 统一数据返回格式需要创建一个新类并使其实现ResponseBodyAdvice 接口并重写里面的方法,然后给当前类加上@ControllerAdvice注解。实际应用时还有几个问题:问题一:重复打包问题二:ClassCastException: com.example.Spring_demo.Resp cannot be cast to java.lang.String统一异常处理需要使用两个注解@ExceptionHandler@ControllerAdvice
图书系统的Web实现(含源码) 图书系统的Web实现(含源码)注意事项:BorrowBooksWeb\src\main\resources路径下的application.yml文件里面的url,username,password这三个属性和自己的数据库保持一致。浏览器访问url:http://127.0.0.1:8080/login.html默认账号密码为:zhangsan涉及的知识:拦截器,spring mvc,mybatis等
线程池--JAVA 虽然线程是轻量级进程,但是如果当创建和销毁的的频率非常之高,那么它也就会消耗很多的资源。而线程池就是用来优化线程频繁创建和销毁的场景,减少线程创建、销毁的频率。ExecutorServiceJAVA标准库为我们实现了线程池,ExecutorService是一个接口,线程池的创建并不像平常的接口实现那样直接new,而是使用了“工厂模式”。ThreadPoolExecutor这个类有4中构造方法,可是仔细看就会发现前三种还是调用的的四种,所以本质上是只有一种。
MyBatis 的XML实现方法(JAVA) 先在配置文件中连接数据库定义接口:XML实现接口:创建一个xml文件,然后在配置文件中配置xml文件的地址。增删查结果映射1. 起别名2. 结果映射3. 开启驼峰命名改
Spring MVC中的一些常用注解 @RequestMapping实现路由映射限制请求方式@PathVariable从url中获取变量的值更改绑定参数的名字@RequestParam可以传递集合更改绑定参数的名字可修改是否为必传参数@RequestBody获取请求正文的内容可修改是否为必传参数@RequestPart可以支持上传文件更改绑定参数的名字可修改是否为必传参数@Controller
阻塞队列(JAVA) 阻塞队列是一种特殊的队列,也遵守 "先进先出" 的原则。阻塞队列能是一种JAVA标准库中已经实现了阻塞队列,我们可以直接进行使用。BlockingQueue是一个接口,阻塞队列也和普通队列一样有两种实现方式:数组和链表。注:创建阻塞队列时需要传入队列的长度参数。