自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 收藏
  • 关注

原创 学习java第一百三十七天

具体的使用在Spring session框架中的SessionRepositoryRequestWrapper使用包装模式对原生的request的功能进行增强,可以将session中的数据和分布式数据库进行同步,这样即使当前tomcat崩溃,session中的数据也不会丢失。装饰者模式又称为包装模式(Wrapper),作用是用来动态的为一个对象增加新的功能。session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。

2024-07-22 00:10:02 109

原创 学习java第一百三十六天

IOC-控制反转AOP-面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。容器-Spring 负责创建和管理对象(Bean)的生命周期和配置。MVC-对web应用提供了高度可配置性,其他框架的集成也十分方便。事务管理 - 提供了用于事务管理的通用抽象层。Spring的事务支持也可用于容器较少的环境。JDBC异常-Spring的JDBC抽象层提供了一个异常层次结构,简化了错误处理策略。Spring面向切面编程(AOP) -提供面向切面编程的功能。Bean配置文件-包含类的信息以及如何配置它们。

2024-07-21 00:12:09 460

原创 学习java第一百三十五天

具体的使用在Spring session框架中的SessionRepositoryRequestWrapper使用包装模式对原生的request的功能进行增强,可以将session中的数据和分布式数据库进行同步,这样即使当前tomcat崩溃,session中的数据也不会丢失。装饰者模式又称为包装模式(Wrapper),作用是用来动态的为一个对象增加新的功能。session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。

2024-07-20 01:51:19 269

原创 学习java第一百三十四天

AOPspring-aspects:该模块为与 AspectJ 的集成提供支持。spring-aop:提供了面向切面的编程实现。spring-instrument:提供了为 JVM 添加代理(agent)的功能。具体来讲,它为 Tomcat 提供了一个织入代理,能够为 Tomcat 传递类文 件,就像这些文件是被类加载器加载的一样。什么是 Spring Bean?简单来说,Bean 代指的就是那些被 IoC 容器所管理的对象。我们需要告诉 IoC 容器帮助我们管理哪些对象,这个是通过配置元数据来定义的。

2024-07-18 23:17:40 302

原创 学习java第一百三十三天

上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext的Stop()方法停止容器时触发该事件。上下文关闭事件(ContextClosedEvent):当ApplicationContext被关闭时触发该事件。容器被关闭时,其管理的所有单例Bean都被销毁。

2024-07-17 23:38:05 257

原创 学习java第一百三十二天

spring容器是整个spring框架的核心,通常我们说的spring容器就是bean工厂,bean工厂负责创建和初始化bean、装配bean并且管理应用程序中的bean.spring中提供了两个核心接口:BeanFactory和ApplicationContext,ApplicationContext是BeanFactory子接口,它提供了比BeanFactory更完善的功能.这个模块将元数据编程引入Spring。为什么说Spring是一个容器?

2024-07-16 23:49:18 225

原创 学习java第一百三十一天

上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext的Stop()方法停止容器时触发该事件。上下文关闭事件(ContextClosedEvent):当ApplicationContext被关闭时触发该事件。容器被关闭时,其管理的所有单例Bean都被销毁。

2024-07-16 00:22:41 200

原创 学习java第一百三十天

Component通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用 @ComponentScan 注解定义要扫描的路径从中找出标识了需要装配的类自动装配到 Spring 的 bean 容器中)。@Bean 注解通常是我们在标有该注解的方法中定义产生这个 bean,@Bean告诉了Spring这是某个类的示例,当我需要用它的时候还给我。@Bean 注解比 Component 注解的自定义性更强,而且很多地方我们只能通过 @Bean 注解来注册bean。

2024-07-15 00:30:52 155

原创 学习java第一百二十九天

通过调用destroy-method方法(@PreDestroy),可以执行对象的销毁逻辑,DisposableBean: 当Bean实现了这个接口,在对象销毁前就会调用destory()方法。2:设置控制器的作用域为非单例模式:可以将控制器的作用域设置为非单例模式,如prototype或request。这样每次请求都会创建一个新的控制器实例,确保每个请求都有独立的控制器对象,避免线程安全问题。根据Bean定义进行实例化。这一步骤会根据Bean的构造器创建对象实例,如果没有指定构造器,则使用默认的构造器。

2024-07-14 01:48:31 784

原创 学习java第一百二十八天

3、request:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。4、session:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP session内有效。在AOP术语中,切面的工作被称为通知。环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的逻辑。后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;前置通知(Before):在目标方法被调用之前调用通知功能;

2024-07-13 01:21:58 132

原创 学习java第一百二十七天

其自定义的方法postProcessBeanDefinitionRegistry会在bean定义(bean definitions)将要加载,bean尚未初始化前真执行,即在BeanFactoryPostProcessor的postProcessBeanFactory方法前被调用。BeanFactoryPostProcessor:Bean工厂的后置处理器,在bean定义(bean definitions)加载完成后,bean尚未初始化前执行。如果项目有实际应用的AOP自定义注解更好,

2024-07-11 23:13:23 371

原创 学习java第一百二十六天

上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext的Stop()方法停止容器时触发该事件。上下文关闭事件(ContextClosedEvent):当ApplicationContext被关闭时触发该事件。容器被关闭时,其管理的所有单例Bean都被销毁。

2024-07-10 23:51:01 273

原创 学习java第一百二十五天

Transactional 这个注解仅仅是一些(和事务相关的)元数据,在运行时被事务基础设施读取消费,并使用这些元数据来配置bean的事务行为。另外注意方法一定要是public的。使用一个事务拦截器,在方法调用的前后/周围进行事务性增强(advice),来驱动事务完成。session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。

2024-07-09 23:40:01 220

原创 学习java第一百二十四天

由于Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。Spring Framework支持POJO(Plain Old Java Object) 编程,从而具备持续集成和可测试性。由于依赖注入和控制反转,JDBC得以简化。Bean 类-它包含属性,setter和getter方法,函数等。Spring面向切面编程(AOP) -提供面向切面编程的功能。Bean配置文件-包含类的信息以及如何配置它们。列举Spring Framework的优点。用户程序-它使用接口。

2024-07-09 01:25:12 77

原创 学习java第一百二十三天

Spring 中的 bean 默认都是单例的,是对单例设计模式的应用。prototype : 每次获取都会创建一个新的 bean 实例。request (仅 Web 应用可用): 每一次 HTTP 请求都会产生一个新的 bean(请求 bean),该 bean 仅在当前 HTTP request 内有效。session (仅 Web 应用可用) : 每一次来自新 session 的 HTTP 请求都会产生一个新的 bean(会话 bean),该 bean 仅在当前 HTTP session 内有效。

2024-07-08 01:46:12 141

原创 学习java第一百二十二天

具体的使用在Spring session框架中的SessionRepositoryRequestWrapper使用包装模式对原生的request的功能进行增强,可以将session中的数据和分布式数据库进行同步,这样即使当前tomcat崩溃,session中的数据也不会丢失。装饰者模式又称为包装模式(Wrapper),作用是用来动态的为一个对象增加新的功能。session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。

2024-07-07 01:01:53 259

原创 学习java第一百二十一天

Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。就比如说下面代码中的 smsService 就是我这里所说的名称,这样应该比较好理解了吧。当一个接口存在多个实现类的话,byType这种方式就无法正确注入对象了,因为这个时候 Spring 会同时找到多个满足条件的选择,默认情况下它自己不知道选择哪一个。Autowired 属于 Spring 内置的注解,默认的注入方式为byType(根据类型进行匹配),也就是说会优先根据接口类型去匹配并注入 Bean (接口的实现类)。

2024-07-06 00:50:51 344

原创 学习java第一百二十天

FileSystemXmlApplicationContext :此容器从一个XML文件中加载beans的定义,XML Bean配置文件的全路径名必须提供给它的构造函数 ApplicationContext context=new。session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。Spring中支持几种作用域。

2024-07-05 00:28:31 306

原创 学习java第一百一十九天

Resource 接口是 Spring 资源访问策略的抽象,它本身并不提供任何资源访问实现,具体的资源访问由该接口的实现类完成--每个实现类代表一种资源访问策略。这些 Resource 实现类,针对不同的的底层资源,提供了相应的资源访问逻辑,并提供便捷的包装,以利于客户端程序的资源访问。autodetect:如果有默认的构造器,则通过constructor的方式进行自动装配,否则使用byType的方式进行自动装配。ClassPathResource:访问类加载路径里资源的实现类。

2024-07-03 22:56:36 121

原创 学习java第一百一十八天

Bean 的作用域有哪些?session (仅 Web 应用可用) : 每一次来自新 session 的 HTTP 请求都会产生一个新的 bean(会话 bean),该 bean 仅在当前 HTTP session 内有效。@Bean 注解通常是我们在标有该注解的方法中定义产生这个 bean,@Bean告诉了 Spring 这是某个类的实例,当我需要用它的时候还给我。@Bean 注解比 @Component 注解的自定义性更强,而且很多地方我们只能通过 @Bean 注解来注册 bean。

2024-07-02 22:54:27 664

原创 学习java第一百一十七天

动态代理:代理类在程序运行时创建,AOP框架不会去修改字节码,而是在内存中临时生成一个代理对象,在运行期间对业务方法进行增强,不会生成新类。缺点:代理对象需要与目标对象实现一样的接口,并且实现接口的方法,会有冗余代码。同时,一旦接口增加方法,目标对象与代理对象都要维护。静态代理:代理类在编译阶段生成,在编译阶段将通知织入Java字节码中,也称编译时增强。AspectJ使用的是静态代理。支持面向切面的编程,并且把应用业务逻辑和系统服务分开。有两种实现方式:静态代理和动态代理。轻量,基本版本大约2MB。

2024-07-02 01:05:35 112

原创 学习java第一百一十六天

IOC-控制反转AOP-面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。容器-Spring 负责创建和管理对象(Bean)的生命周期和配置。MVC-对web应用提供了高度可配置性,其他框架的集成也十分方便。事务管理 - 提供了用于事务管理的通用抽象层。Spring的事务支持也可用于容器较少的环境。JDBC异常-Spring的JDBC抽象层提供了一个异常层次结构,简化了错误处理策略。作为第三方Web框架,使用Spring Frameworks中间层。作为一个成熟的Spring Web应用程序。

2024-06-30 23:03:54 885

原创 学习java第一百一十五天

将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。在Spring中在AOP实现中的Advice和interceptor之间的转换就是通过适配器模式实现的。模板模式的核心是父类定义好流程,然后将流程中需要子类实现的方法就抽象话留给子类实现,Spring中的JdbcTemplate就是这样的实现。我们知道jdbc的步骤是固定。

2024-06-30 00:20:10 71

原创 学习java第一百一十四天

是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置.session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;

2024-06-29 01:08:28 349 1

原创 学习java第一百一十三天

异常处理:Spring提供了方便的API来将具体技术的异常(由JDBC、Hibernate或JDO抛出)转换为一致的unchecked 异常。MVC框架:Spring的WEB框架是一个设计良好的web MVC框架,它为web框架提供了一个很棒的替代方案。事务管理:Spring提供了一个一致性的事务管理接口,可以收缩到本地事务,也可以扩展到全局事务(JTA)。对象给出它们的依赖,而不是创建或查找依赖的对象。轻量级:Spring框架是轻量级的,最基础的版本大约只有2MB。Spring框架的好处?

2024-06-28 00:52:25 470

原创 学习java第一百一十二天

动态代理:代理类在程序运行时创建,AOP框架不会去修改字节码,而是在内存中临时生成一个代理对象,在运行期间对业务方法进行增强,不会生成新类。缺点:代理对象需要与目标对象实现一样的接口,并且实现接口的方法,会有冗余代码。静态代理:代理类在编译阶段生成,在编译阶段将通知织入Java字节码中,也称编译时增强。环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的逻辑。后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;AOP有哪些实现方式?

2024-06-27 00:38:05 161

原创 学习java第一百一十一天

是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置.@Import注解是import标签的替换,在SpringBoot的自动装配中非常重要,也是EnableXXX的前置基础。Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;Spring ORM:对现有的ORM框架的支持;

2024-06-25 23:44:45 234

原创 学习java第一百一十天

在Spring框架中,AOP允许我们定义切面,并在切面中定义通知(Before、After、Around等),以便在应用程序中的特定点执行代码。然后,我们需要在Spring配置文件中启用AOP支持,并将Aspect类注册为一个Bean。最后,我们可以在业务逻辑代码中注入Aspect类,并让Spring容器自动调用相应的通知方法。在Spring框架中,事务管理可以通过声明式事务管理或编程式事务管理来实现。声明式事务管理允许我们将事务管理逻辑与业务逻辑分离,让Spring容器自动处理事务的开启、提交和回滚。

2024-06-25 00:42:16 172

原创 学习java第一百零九天

例如资源的获取,支持多种消息(例如 JSP tag 的支持),对BeanFactory 多了工具级别的支持等待。所以你看他的名字,已经不是 BeanFactory 之类的工厂了,而是 “应用上下文”, 代表着整个大容器的所有功能。该接口定义了一个 refresh 方法,此方法是所有阅读 Spring 源码的人的最熟悉的方法,用于刷新整个容器,即重新加载/刷新所有的bean。看下面的隶属 ApplicationContext 粉红色的 “高级容器”,依赖着 “低级容器”,这里说的是依赖,不是继承哦。

2024-06-24 00:44:53 180

原创 学习java第一百零八天

AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,提高系统的可维护性。静态代理的代表为AspectJ;(4)返回后通知(AfterReturning Advice):在连接点正常完成后执行的通知(如果连接点抛出异常,则不执行)(2)后置通知(After Advice):当连接点退出的时候执行的通知(不论是正常返回还是异常退出)。

2024-06-23 03:39:41 291

原创 学习java第一百零七天

使用JDBC抽象和DAO模块,我们可以确保保持数据库代码的整洁和简单,并避免数据库资源关闭而导致的问题。它在多个数据库服务器给出的异常之上提供了一层统一的异常。它还利用Spring的AOP模块为Spring应用程序中的对象提供事务管理服务。容器也从XML文件加载bean的定义。容器从XML文件加载bean的定义。XML bean配置文件的完整路径必须提供给构造函数。容器从web应用程序中加载包含所有bean定义的XML文件。解释JDBC抽象和DAO模块。

2024-06-22 01:38:15 684

原创 学习java第一百零六天

其自定义的方法postProcessBeanDefinitionRegistry会在bean定义(bean definitions)将要加载,bean尚未初始化前真执行,即在BeanFactoryPostProcessor的postProcessBeanFactory方法前被调用。BeanFactoryPostProcessor:Bean工厂的后置处理器,在bean定义(bean definitions)加载完成后,bean尚未初始化前执行。如果项目有实际应用的AOP自定义注解更好,

2024-06-20 23:48:07 188

原创 学习java第一百零五天

动态代理:代理类在程序运行时创建,AOP框架不会去修改字节码,而是在内存中临时生成一个代理对象,在运行期间对业务方法进行增强,不会生成新类。缺点:代理对象需要与目标对象实现一样的接口,并且实现接口的方法,会有冗余代码。静态代理:代理类在编译阶段生成,在编译阶段将通知织入Java字节码中,也称编译时增强。环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的逻辑。后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;

2024-06-20 01:54:34 120

原创 学习java第一百零四天

重写: 你仍需用 <constructor-arg>和 <property> 配置来定义依赖,意味着总要重写自动装配。基本数据类型:你不能自动装配简单的属性,如基本数据类型,String 字符串,和类。继承 HibernateDAOSupport 提供一个 AOP 拦截器。控制反转 Hibernate Template 和 Callback。模糊特性:自动装配不如显式装配精确,如果有可能,建议使用显式装配。使用 Spring 通过什么方式访问 Hibernate?自动装配有哪些局限性?

2024-06-19 02:22:57 103

原创 学习java第一百零三天

Component通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用 @ComponentScan 注解定义要扫描的路径从中找出标识了需要装配的类自动装配到 Spring 的 bean 容器中)。@Bean 注解通常是我们在标有该注解的方法中定义产生这个 bean,@Bean告诉了Spring这是某个类的示例,当我需要用它的时候还给我。@Bean 注解比 Component 注解的自定义性更强,而且很多地方我们只能通过 @Bean 注解来注册bean。

2024-06-18 02:51:15 413

原创 学习java第一百零二天

通过策略接口,MVC 框架变成为高度可配置的。MVC 容纳了大量视图技术,其中包括 JSP、POI 等,模型来有 JavaBean 来构成,存放于 m 当中,而视图是一个街口,负责实现模型,控制器表示逻辑代码,由 c 的事情。Spring 的核心要点就是支持不绑定到特定 J2EE 服务的可重用业务和数据的访问的对象,毫无疑问这样的对象可以在不同的 J2EE 环境,独立应用程序和测试环境之间重用。通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。

2024-06-17 02:54:37 158

原创 学习java第一百零一天

AOP(面向切面编程)是Spring框架的一个核心功能,它允许以声明的方式将代码逻辑跨越多个方法、对象和代码位置进行组织和重用,以便实现横切关注点的复用。具体来说,AOP可以通过将通用横切逻辑(如安全性、事务、缓存等)从业务逻辑中抽离出来,以提高代码的可重用性和可维护性。在Spring中,AOP是通过代理模式实现的,可以通过XML配置或注解来声明AOP通知和切入点。Spring ORM:提供对ORM框架的支持,如Hibernate、JPA等。Spring AOP:提供面向切面编程的支持。

2024-06-16 01:31:56 546

原创 学习java第一百天

在Spring框架中,AOP允许我们定义切面,并在切面中定义通知(Before、After、Around等),以便在应用程序中的特定点执行代码。然后,我们需要在Spring配置文件中启用AOP支持,并将Aspect类注册为一个Bean。最后,我们可以在业务逻辑代码中注入Aspect类,并让Spring容器自动调用相应的通知方法。在Spring框架中,事务管理可以通过声明式事务管理或编程式事务管理来实现。声明式事务管理允许我们将事务管理逻辑与业务逻辑分离,让Spring容器自动处理事务的开启、提交和回滚。

2024-06-15 00:31:33 158

原创 学习java第九十九天

应用上下文为解析文本消息提供了一种方法,一种加载文件资源(比如图片)的通用方法,它们可以给注册为监听器的bean发布事件。另外,必须通过bean 工厂的编程方式来处理的容器上的操作或容器中的bean,能够在应用上下文中以声明式的方式处理。应用上下文实现了MessageSource,一个用于获得本地消息的接口,它的实际实现是可插拔的。框架是更好的选择,因为它使用了IoC 来提供了控制器逻辑和业务对象之间的分离。使用Spring MVC,能为你的业务对象声明式的绑定请求参数。解释Spring MVC模块。

2024-06-11 23:32:34 299

原创 学习java第九十八天

在传统的编程方式中,业 务逻辑的流程是由应用程序中的早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业务逻辑的流程是由对象关系图来决定的,该对象关系图由装配 器负责实例化,这种实现方式还可以将对象之间的关联关系的定义抽象化。依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下,将其他对象所依赖的功能对象实例化的模式。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,咱们在开发的时候不必担心 Spring 是如何在后台进行工作的。

2024-06-11 00:07:16 370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除