- 博客(335)
- 资源 (11)
- 收藏
- 关注
原创 SpringBoot 内置工具
Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启。SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查。断言是一个逻辑判断,用于检查不应该发生的情况。
2025-04-02 11:00:00
原创 Spring Boot 简介及快速搭建
SSH : Spring Struts2(MVC框架) Hibernate(ORM框架)SSM : Spring SpringMVC(MVC框架) MyBatis(ORM框架)SSH : Spring SpringMVC(MVC框架) Hibernate(ORM框架)SSM : Spring Boot + SpringMVC MyBatis(ORM框架)企业自己研发的框架(小众框架)
2025-04-02 09:00:00
311
原创 框架基础总结
XML 是 Extensible Markup Language 的缩写,即可扩展标记语言,是一种简单的数据储存语言,使用一系列简单的标记来描述结构化数据。在实际应用中,经常需要对 XML 文档进行各中操作。如在应用程序启动时去读取XML配置文件信息,或者把数据库中内容读取出来转换为 XML 文档形式,这些时候都会用到 XML 文档的解析技术。目前常用的XML解析技术有四种DOM基于XML文档树结构的解析适用于多次访问的XML文档比较消耗资源。
2025-04-01 14:19:35
427
原创 Spring Data JPA
1、都跟数据·库操作有关,JPA 是JDBC 的升华,升级版。2、JDBC和JPA都是一组规范接口3、都是由SUN官方推出的Spring Data JPA 是更大的 Spring Data 系列的一部分,可以轻松实现基于 JPA 的repositories。该模块处理对基于 JPA 的数据访问层的增强支持。它使构建使用数据访问技术的 Spring 驱动的应用程序变得更加容易。实现应用程序的数据访问层已经很麻烦了。必须编写太多样板代码来执行简单的查询以及执行分页和审计。
2025-04-01 13:51:50
598
原创 MyBatis-Plus的使用(Spring版)
Override@Override// 起始版本 3.3.0(推荐使用)// 也可以使用(3.3.0 该方法有bug请升级到之后的版本如`3.3.1.8-SNAPSHOT`)@Override// 起始版本 3.3.0(推荐使用)// 也可以使用(3.3.0 该方法有bug请升级到之后的版本如`3.3.1.8-SNAPSHOT`)
2025-03-31 15:36:31
933
原创 Servlet
Servlet 是 Server Applet 的简称,译为“服务器端小程序”。Servlet 是 Java 的一套技术标准,规定了如何使用 Java 来开发动态网站。换句话说,Java 可以用来开发网站后台,但是要提前定义好一套规范,并编写基础类库,这就是 Servlet 所做的事情。
2025-03-31 10:13:15
826
原创 SpringMVC基于注解使用:异常处理
在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?在SpringMVC中拥有一套非常强大的异常处理机制,SpringMVC通过HandlerExceptionResolver处理程序的异常,包括请求映射,数据绑定以及目标方法的执行时发生的异常。
2025-03-30 14:00:00
311
原创 SpringMVC基于注解使用:国际化
在日常工作中,如果你的网站需要给不同语言地区的人进行查看,此时就需要使用国际化的基本操作,springmvc的国际化操作比较容易。I18nController.javalogin_en_US.propertieslogin_zh_CN.propertiesspringmvc.xml其实SpringMVC中国际化的处理非常简单,就是按照浏览器所带来的语言信息决定的。源码:通过图片能够发现,默认调用的是org.springframework.web.servlet.
2025-03-30 09:00:00
584
原创 SpringMVC基于注解使用:上传&下载
Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。Spring MVC 上下文中默认没有装配 MultipartResovler,因此默认情况下不能处理文件的上传工作,如果想使用 Spring 的文件上传功能,需现在上下文中配置 MultipartResolver。
2025-03-29 14:49:39
230
原创 SpringMVC基于注解使用:JSON处理
到目前为止我们编写的所有Controller的方法的返回值都是String类型,但是大家应该都知道,我们有时候数据传递特别是在ajax中,我们返回的数据经常需要使用json,那么如何来保证返回的数据的是json格式呢?当前端传来这样一个json数组:[{ id:1,name:xx},{ id:1,name:xx},{ id:1,name:xx},...]时,用List<E>接收。前端传来的是一个json对象时:{ id:1,name:xx},可以用Map来获取。"name": "管理员"
2025-03-29 14:29:57
764
原创 SpringMVC基于注解使用:类型转换&数据格式化&数据验证
在日常的企业开发需求中,我们输入文本框的内容全部都是字符串类型,但是在后端处理的时候我们可以用其他基本类型来接受数据,也可以使用实体类来接受参数,这个是怎么完成的呢?就是通过SpringMVC提供的类型转换器,SpringMVC内部提供了非常丰富的类型转换器的支持,但是有些情况下有可能难以满足我们的需求,因此需要我们自己实现,如下:自定义类型转换器User.javaMyConverter.javaUserController.javasuccess.jsps
2025-03-29 12:31:09
523
原创 SpringMVC基于注解使用:响应处理
首先来介绍一个业务场景,来帮助大家做理解,在实际工作中,有些时候我们在修改数据的时候可能只需要修改其中几个字段,而不是全部的属性字段都获取,那么当提交属性的时候,从form表单中获取的数据就有可能只包含了部分属性,此时再向数据库更新的时候,肯定会丢失属性,因为对象的封装是springmvc自动帮我们new的,所以此时需要先将从数据库获取的对象保存下来,当提交的时候不是new新的对象,而是在原来的对象上进行属性覆盖,此时就需要使用@ModelAttribute注解。这样就可以解决这个问题。
2025-03-29 11:59:22
673
原创 SpringMVC基于注解使用:处理请求
在之前的servlet中我们可以通过request.getParameter()来获取请求中的参数,但是在我们编写的SpringMVC的应用程序中,在具体请求的方法中并不包含request参数,那么我们应该如何获取请求中的参数呢?大家发现此时是找不到对应的mapping映射的,此时是因为DispatcherServlet会拦截所有的请求,而此时我们没有对应图片的请求处理方法,所以此时报错了,想要解决的话非常简单,只需要添加一个配置即可。如果需要在请求路径中的参数像作为参数应该怎么使用呢?
2025-03-29 11:27:09
593
原创 SpringMVC简单介绍及使用
Spring Web MVC是构建在Servlet API上的原始Web框架,从一开始就包含在Spring Framework中。正式名称 “Spring Web MVC,” 来自其源模块(spring-webmvc)的名称,但它通常被称为“Spring MVC”。简而言之,springMVC是Spring框架的一部分,是基于java实现的一个轻量级web框架。
2025-03-29 10:42:29
701
原创 SSM框架整合
在老期的项目中,一般都是使用ssm项目做开发的,虽然现在的主流开发是springboot来做开发,但是ssm的基本整合还是需要掌握的。
2025-03-28 19:44:04
431
原创 MyBatis分页插件
**** 自定义分页插件实现的简易版分页插件*/@Signature(type = Executor.class,method = "query" ,args ={MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class} ), // 需要代理的对象和方法。
2025-03-28 16:11:29
997
原创 MyBatis基于XML的详细使用—缓存
MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。为了使它更加强大而且易于配置,我们对 MyBatis3 中的缓存实现进行了许多改进。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。<cache/>映射语句文件中的所有 select 语句的结果将会被缓存。映射语句文件中的所有 insert、update 和 delete 语句会刷新缓存。缓存会使用最近最少使用算法(LRU, Least Recently Used)算法来清除不需要的缓存。
2025-03-28 15:09:56
972
原创 MyBatis基于XML的详细使用—动态sql
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。
2025-03-28 14:04:49
442
原创 MyBatis基于XML的详细使用—高级结果映射
三种关联guan关系都有两种关联查询的方式,嵌套查询,嵌套结果*Mybatis的yanc延迟加载配置在全局配置文件中加入下面代码<settings>在映射文件中,元素和元素中都已默认配置了延迟加载属性,即默认属性fetchType=”lazy”(属性fetchType=”eager”表示立即加载),所以在配置文件中开启延迟加载后,无需在映射文件中再做配置。
2025-03-28 13:40:26
272
原创 MyBatis基于XML的详细使用-参数、返回结果处理
-1.声明resultMap自定义结果集 resultType 和 resultMap 只能使用一个。id 唯一标识, 需要和<select 上的resultMap 进行对应type 需要映射的pojo对象, 可以设置别名autoMapping 自动映射,(默认=true) 只要字段名和属性名遵循映射规则就可以自动映射,但是不建议,哪怕属性名和字段名一一对应上了也要显示的配置映射。
2025-03-28 10:25:13
204
原创 MyBatis的配置文件详解
在mybatis的项目中,我们发现了有一个mybatis-config.xml的配置文件,这个配置文件是mybatis的全局配置文件,用来进行相关的全局配置,在任何操作下都生效的配置。下面我们要针对其中的属性做详细的解释,方便大家在后续使用的时候更加熟练。MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。
2025-03-28 10:18:45
730
原创 Mybatis的介绍和基本使用
MyBatis 是一款优秀的持久层框架/半自动的ORM,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。1、与JDBC相比,减少了50%的代码量2、 最简单的持久化框架,简单易学3、SQL代码从程序代码中彻底分离出来,可以重用。
2025-03-27 19:40:28
824
原创 Spring声明式事务
把一组业务当成一个业务来做;要么都成功,要么都失败,保证业务操作完整性的一种数据库机制。在代码中直接加入处理事务的逻辑,可能需要在代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法-------------catch(){在方法的外部添加注解或者直接在配置文件中定义,将事务管理代码从业务方法中分离出来,以声明的方式来实现事务管理。
2025-03-27 17:24:10
613
原创 SpringAOP的使用详解
spring对于通知方法的要求并不是很高,你可以任意改变方法的返回值和方法的访问修饰符,但是唯一不能修改的就是方法的参数,会出现参数绑定的错误,原因在于通知方法是spring利用反射调用的,每次方法调用得确定这个方法的参数的值。如果要com.example.service ==>com.example.service , com.example.* ==>com.example.service.impl就无法匹配。该切入点规则表示,切出指定包下所有的类中的query方法,要求无参,但返回值类型不限。
2025-03-27 11:20:33
693
原创 Spring IOC的Java类使用
/默认情况下,配置类使用@Bean方法的名称作为结果bean的名称。//但是,可以使用name属性覆盖此功能,如以下示例所示://多个别名:@Bean(name = { "dataSource", "subsystemA-dataSource", "subsystemB-dataSource" })
2025-03-27 10:20:28
158
原创 SpringIOC的注解应用
当定义好基础的扫描包后,在某些情况下可能要有选择性的配置是否要注册bean到IOC容器中,此时可以通过如下的方式进行配置。当我们查看@AutoWired注解的源码的时候发现,此注解不仅可以使用在成员变量上,也可以使用在方法上。
2025-03-26 16:49:32
632
原创 Spring AOP介绍与使用
面向切面编程(Aspect-oriented Programming 简称AOPAOP) ,是相对面向对象编程(Object-oriented Programming 简称OOP)的框架,作为OOP的一种功能补充. OOP主要的模块单元是类(class)。而AOP则是切面(aspect)。切面会将诸如事务管理这样跨越多个类型和对象的关注点模块化(在AOP的语义中,这类关注点被称为横切关注点(crosscutting))。
2025-03-26 14:42:01
533
原创 spring创建第三方bean对象
在Spring中,很多对象都是单实例的,在日常的开发中,我们经常需要使用某些外部的单实例对象,例如数据库连接池,下面我们来讲解下如何在spring中创建第三方bean实例。
2025-03-26 14:03:54
230
原创 使用BeanPostProcessor自定义Bean
BeanPostProcessor 是 Spring 框架提供的接口,用于在 Spring 容器实例化、配置和初始化一个 bean 之后,执行自定义逻辑。通过实现该接口,你可以在 Spring 容器中所有的 bean 实例化后执行特定操作。postProcessBeforeInitialization: 在 bean 初始化之前调用。postProcessAfterInitialization: 在 bean 初始化之后调用。这些方法可以用来修改 bean 的实例,或进行日志、验证等操作。
2025-03-25 16:53:51
494
原创 bean定义的继承
bean定义可以包含许多配置信息,包括构造函数参数,属性值和特定于容器的信息,例如初始化方法,静态工厂方法名称等。子bean定义从父定义继承配置数据。子定义可以覆盖某些值或根据需要添加其他值。使用父子bean定义可以节省很多配置输入。实际上,这是一种模板形式。如果开发者编程式地使用ApplicationContext接口,子bean定义可以通过ChildBeanDefinition类来表示。
2025-03-25 14:31:37
759
原创 自定义 Bean 特性(3)
除了 ApplicationContextAware和BeanNameAware之外,Spring还提供了一系列Aware接口,让bean告诉容器,它们需要一些具体的基础配置信息。因此,我们建议将它们用于需要以编程方式访问容器的基础架构bean。容器运行的资源适配器BootstrapContext通常仅在JCA感知的ApplicationContext实例中可用。仅在Web下的Spring ApplicationContext中有效。仅在Web下的Spring ApplicationContext中有效。
2025-03-25 13:58:48
124
原创 自定义 bean 的特性(2)
通过ApplicationContext 接口,或者通过将引用转换成已知的接口的子类, 例如ConfigurableApplicationContext就能够提供一些额外的功能。为了更为方便,包括可以注入的字段和多个参数方法,请使用新的基于注解的自动装配功能。当ApplicationContext 创建实现org.springframework.context.ApplicationContextAware接口的对象实例时,将为该实例提供对该 ApplicationContext.的引用。
2025-03-25 13:48:13
224
原创 自定义 bean 的特性(1)
你可以实现InitializingBean 和 DisposableBean接口,让容器里管理Bean的生命周期。容器会在调用afterPropertiesSet() 之后和destroy()之前会允许bean在初始化和销毁bean时执行某些操作。JSR-250 @PostConstruct 和 @PreDestroy注解通常被认为是在现代Spring应用程序中接收生命周期回调的最佳实践。使用这些注解意味着您的bean不会耦合到特定于Spring的接口。
2025-03-25 13:43:32
1197
原创 Zookeeper 面试题
从zookeeper集群中选出一个节点作为Leader,所有的写请求都会由Leader 节点来处理集群中所有节点中的数据要和Leader 节点保持一致,如果不一致则要进行同步当Leader 节点接收到写请求时,会利用两阶段提交来广播该写请求,使得写请求像事务一样在其他节点上执行,达到节点上的数据实时一致。但值得注意的是,zookeeper 只是尽量的在达到强一致性,实际上仍然只是最终一致性的。
2024-11-18 09:45:29
278
原创 MQ 消息队列面试题
A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果C 系统现在不需要了呢?A 系统负责人几乎崩溃......A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。如果使用 MQ,A 系统产生一条数据,发送到 MQ 里面去,哪个系统需要数据自己去 MQ 里面消费。如果新系统需要数据,直接从MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。
2024-11-18 09:42:39
1066
原创 网络编程面试题
网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。
2024-11-11 10:16:40
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人