![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 91
qq_39093474
这个作者很懒,什么都没留下…
展开
-
spring简介
一:spring是什么?1.spring是一个开源框架。2.spring是为了简化企业级开发应用而生,使用spring可以使简单的javaBean实现以前只有EJB才能实现的功能。3.spring是一个IOC(DI)和AOP容器框架。二:具体描述?1.轻量级:spring是非侵入性的,基于spring开发的应用中的对象可以不依赖与spring的API2.依赖注入(DI-de...翻译 2018-12-18 21:02:36 · 98 阅读 · 0 评论 -
Listener、Filter入门
观察者模式(Observer),又叫(),定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。翻译 2022-10-18 16:35:34 · 148 阅读 · 0 评论 -
Servlet入门
Servlet是基于Jakarta技术的Web组件,由容器管理,可生成动态内容。与其他基于Jakarta技术的组件一样,servlet是独立于平台的Java类,它们被编译为与平台无关的字节码,这些字节码可以动态加载到支持Jakarta技术的Web服务器中并由其运行。容器,有时也称为servlet引擎,是提供servlet功能的Web服务器扩展。Servlet通过servlet容器实现的请求/响应范式与Web客户端交互。Servlet容器是Web。翻译 2022-10-18 15:47:31 · 89 阅读 · 0 评论 -
原理探究:Spring @Value注解详解
对于从事java开发工作的小伙伴来说,spring框架肯定再熟悉不过了。spring给开发者提供了非常丰富的api,今天咱们重点聊聊@Value注解,因为它是一个非常有用,但极其容易被忽视的注解,绝大多数人可能只用过它的一部分功能,这是一件非常遗憾的事情。所以今天有必要和大家一起,重新认识一下@Value。翻译 2022-12-18 20:45:21 · 3142 阅读 · 2 评论 -
原理探究:Spring @Autowired注解详解
Autowired@ResourceSpring定义的注解JSR-250定义的注解一个参数:required(默认true),表示是否必须注入七个参数:最重要的两个参数是name、type默认按类型自动装配默认按名称自动装配默认按类型自动装配如果要按名称自动装配,需要使用@Qualifier一起配合默认按名称自动装配如果指定了name,则按名称自动装配;如果指定了type,则按类型自动装配作用范围:构造器、方法、参数、成员变量、注解作用范围:类、成员变量、方法。翻译 2022-12-18 17:02:03 · 742 阅读 · 0 评论 -
Spring是如何解决循环依赖问题的及三级缓存的作用
不支持循环依赖情况下,只有一级缓存生效,二三级缓存用不到。二三级缓存就是为了解决循环依赖,且之所以是二三级缓存而不是二级缓存,主要是可以解决循环依赖对象需要提前被aop代理,以及如果没有循环依赖,早期的bean也不会真正暴露,不用提前执行代理过程,也不用重复执行代理过程。翻译 2022-11-01 16:38:54 · 525 阅读 · 0 评论 -
拦截器和过滤器区别
1.前言Interceptor拦截器,是SpringMVC提供用来拦截发送给Controller层方法的请求的拦截器,类似于filter主要进行记录日志,判断用户是否登录,过滤权限等。拦截器和我们所学的过滤器是很相似的,只是范围不一样。过滤器filter:是JavaEE提供用来拦截所有的请求,进行过滤,它主要实现编码过滤,进行统一编码,防止乱码。拦截器Interceptor:主要用来拦截Controller控制器的方法,一般用于拦截Controller层,满足条件才放行,主要用于实现权限分配,不满足翻译 2022-09-03 15:44:18 · 1568 阅读 · 0 评论 -
搭建Spring开发环境
一:新建项目打开ecplise,File—new——java Project,给项目起个名字2. 加入jar包,新建一个文件夹lib,把spring所用的jar包赋值进去3.在类路径下创建一个spring的XML文件applicationContext.xml;<?xml version="1.0" encoding="UTF-8"?><beans x...翻译 2018-12-19 10:23:46 · 128 阅读 · 0 评论 -
spring_IOC和DI概述
一:IOC1.IOC(inversion of control):其思想是反转资源的获取方向,传统的资源查找方式是组件向容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后,则是容器主动的将资源推送给他所管理的组件,组件所要做的就是选择就是选择一种合适的方式来接受资源,这种行为也被成为查找的被动方式二:DI1DI(dependency injection):IO...翻译 2018-12-19 11:26:16 · 113 阅读 · 0 评论 -
依赖注入的三种方式
一:spring容器1.在spring IOC容器读取bean配置创建bean实例之前,必须对他进行实例化,只有在容器实例化之后,才可以在IOC容器里获取实例并使用。//创建spring容器对象,applicationContext是IOC容器,实际上也是一个接口//ClassPathXmlApplicationContext:是ApplicationContext的接口实现类,是在类...翻译 2018-12-19 17:09:23 · 1572 阅读 · 0 评论 -
spring属性值注入细节
一:字面值1.字母值:可用字符串表示的值,可以通过<value>元素标签或是value属性进行注入2.基本数据类型及其封装类,String等类型都可以采取字面值注入的方式<constructor-arg value="baoma" index="1"></constructor-arg><constructor-arg type="int...翻译 2018-12-20 19:20:29 · 155 阅读 · 0 评论 -
spring-引用其他bean
一:引用其他Bean1.组成应用程序的Bean经常需要相互协作已完成应用程序的功能,要使bean能够相互访问,就必须配置在Bean配置文件中指定Bean的引用。2.在Bean的配置文件中,可以在<property>中<ref>元素或者ref属性为Bean的属性或构造器参数指定对Bean的引用。<!-- 可以使用property的ref属性来指定bean...翻译 2018-12-20 21:43:34 · 308 阅读 · 0 评论 -
注入null属性值与级联属性
一:注入null值1.可以使用专用的<null>元素标签为bean的字符串或其他对象类型的属性注入null值。<!-- 测试NUll值 --><constructor-arg><null/></constructor-arg>2.和Struts,hibernate等框架一样,spring支持级联属性的配置<be...翻译 2018-12-24 14:30:11 · 245 阅读 · 2 评论 -
集合属性List,Set,
一:List1.在spring中可以通过一组内置的XML标签(列如List,Set)2.配置java.util.List类型的属性,需要知道List标签,在标签里包含一些元素,这些标签可以通过<value>指定简单的常亮值,通过<ref>指定对其他Bean的引用,通过<bean>指定内置的Bean的定义,通过<null>指定空元素,甚至内...翻译 2018-12-24 16:09:59 · 355 阅读 · 0 评论 -
集合属性之Map属性和properties属性
一:配置Map属性1.java.util.Map通过<map>标签定义,<map>标签里可以使用多个<entry>作为子标签,每个里面都包含一个键和一个值2.必须在key属性定义键。3.因为键和值的类型没有限制,所以可以自由的为他们指定<value>,<value-ref>,<bean>或null元素。4.可以...转载 2018-12-24 19:56:28 · 1631 阅读 · 0 评论 -
如何在spring中配置集合供多个Bean使用
一:Utility Scheme1.使用基本的集合标签定义集合时,不能将集合作为独立的Bean定义,导致其他Bean无法引用该集合,所以无法在不同Bean之间共享集合。2.可以使用Utility Scheme里的集合标签定义独立的集合Bean,需要的是在Beans根元素里添加Utility Scheme定义。二:如何配置独立的集合1.导入Utility Schem...翻译 2018-12-26 09:26:51 · 478 阅读 · 0 评论 -
spring使用p命名空间配置Bean
一:p命名空间1.为了简化XML文件的配置,越来越多的XML文件采用属性而非子元素配置信息。2.spring从2.5版本开始引入一个新的p命名空间,可以通过<Bean>元素属性的方式配置Bean的属性。3.使用p命名空间,基于XML方式的配置方式进一步简化。二:如何使用p命名空间配置Bean1.导入p命名空间,在applicationContext.xml文件底部找...翻译 2018-12-26 10:03:36 · 911 阅读 · 0 评论 -
spring的自动装配
一:自动装配1.springIOC容器里可以自动装配bean,我们需要做的就是在<bean>的autowire属性里指定自动装配的模式二:三种装配模式1.byType:根据类型自动装配,若IOC容器中有多个与目标bean类型一致的bean,在这种情况下,spring将无法判断哪个bean最适合该属性,所以不能执行自动装配。2.byName:根据名称自动装配,必须将目标b...翻译 2019-01-04 09:33:04 · 98 阅读 · 0 评论 -
spring_Bean之间的关系
一:继承spring配置1.spring允许继承Bean的配置,被继承的Bean的称为父Bean,继承这个父Bean的Bean称为子Bean。2.子Bean从父Bean中继承配置,包括Bean的属性配置3.子Bean也可以覆盖从父Bean继承过来的配置4.父Bean可以作为模板,也可以作为Bean的实例,若只想把父Bean作为模板,可以设置Bean的abstract属性为true。...翻译 2019-01-04 09:33:18 · 104 阅读 · 0 评论 -
spring_bean的作用域
一:作用域1.使用bean的scope属性类配置bean的作用域。singleton:默认值,容器初始化时创建bean的实例,在这个生命周期内只创建这一个bean,单例的 prototype:原型的,容器初始化时不创建bean的实例,而在每次请求时都创建一个新的bean实例并返回 session和request不怎么常用,就不做介绍了。2.<?xml version="1...翻译 2018-12-27 15:28:07 · 84 阅读 · 0 评论 -
使用外部属性文件(通常用来配置系统文件,比如数据源)
一:使用外部属性文件1.在配置文件里配置Bean时,有时需要在Bean的配置里混入系统部署的细节信息(例如:文件路径,数据源,等其他配置信息)而这些部署细节实际上需要和Bean配置相分离的2.spring提供了一个PropertyplaceholderConfigures的BeanFactory后置处理器,这个处理器允许用户将Bean配置的部分内容外移到属性文件中,可以在bean配...转载 2018-12-27 16:36:44 · 512 阅读 · 0 评论 -
spring的表达式语言:SPEL
一:SPEL1.spring表达式语言(简称SPEL):是一个支持运行时查询和操作对象图的强大的表达式语言2.语法类似于EL:SPEL使用#{...}作为定界符,所有在花括号中的字符都将被认为是SPEl。3.SPEL为Bean的属性进行动态赋值提供了便利。4.通过SPEL可以实现:通过Bean的id对Bean进行引用 调用方法以及引用对象的属性 计算表达式的值 正则表达式...翻译 2018-12-28 17:00:06 · 107 阅读 · 0 评论 -
spring管理Bean的生命周期
一:IOC容器中Bean的生命周期方法 1.spring IOC容器中可以管理Bean的生命周期,spring允许在Bean的生命周期的特定点执行定制的任务。2.spring IOC容器对Bean的生命周期进行管理的过程:通过构造器或者工厂方法创建Bean实例 为Bean的属性设置值和对其他Bean的引用 调用Bean的初始化方法 Bean可以使用了 当容器关闭时,调用Bean...翻译 2018-12-28 20:03:33 · 214 阅读 · 0 评论 -
spring通过调用静态工厂方法创建Bean
一:静态工厂方法1.调用静态工厂方法创建Bean是将对象创建Bean的创建过程封装到静态方法中,当客户端需要对象时,只需要简单的调用静态方法,而不关心创建对象的细节。2.要声明通过静态方法创建的Bean,需要在Bean的class属性里指定拥有该工厂方法的类,同时在factory-method属性里指定工厂方法的名称,最后使用constructor-arg元素为该方法传递参数。二:代码...翻译 2019-01-02 14:50:15 · 466 阅读 · 0 评论 -
spring通过实例工厂方法来创建Bean
一:实例工厂方法1.将对象的创建过程封装到另外一个对象实例的方法里,当客户端需要请求对象时,只需要简单的调用该实例方法而不需要关系创建对象的细节。2.要声明通过实例工厂方法创建的Bean在bean的factory-bean属性里指定拥有该工厂方法的bean 在factory-method属性里指定了该工厂方法的名称 使用constructor-arg元素来为工厂方法传递参数二:...翻译 2019-01-02 15:29:27 · 280 阅读 · 0 评论 -
Spring通过FactoryBean配置bean
一:创建一个Car类package com.dhx.factorybean;import javax.print.DocFlavor.STRING;public class Car { private String brand; private double price; public Car() { super(); } public Car(String brand...翻译 2019-12-02 21:44:30 · 87 阅读 · 0 评论 -
基于注解的方式配置Bean
一:在classpath中扫描组件1.组件扫描(component scanning):spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件。2.特定的组件包括:@Component:基本注解,标识了一个受spring管理的组件。 @Repository:标识持久层组件 @Service:标识服务层(业务层)组件 @Controller:标识表现层组件...翻译 2019-01-04 14:20:59 · 389 阅读 · 0 评论 -
基于注解的方式配置Bean的属性
一:组件装配1.context:component-scan 元素还会自动注册AutowiredAnnotationBeanPostProcessor实例,该实例可以自动装配具有@Autowired和@Resource,@Inject注解的属性二:使用@Autowired自动装配Bean1.@Autowired注解自动装配具有兼容类型的单个Bean属性2.构造器,普通字段(即使是非...翻译 2019-01-04 17:16:15 · 293 阅读 · 0 评论 -
spring4.x 新特性-泛型依赖注入
一:泛型依赖注入1.spring 4.x中可以为子类注入子类对应得泛型类型的成员变量的引用 二.代码实现 1.创建一个泛型的BaseRepository类package com.dhx.generic.di;public class BaseRepository<T> {}2.创建一个泛型的BaseService,并配置与BaseRepository...翻译 2019-01-07 15:37:12 · 233 阅读 · 0 评论 -
spring Aop基础
一:为什么需要AOP1.当我们需求是:在程序执行期间追踪正在发生的活动,也就是打印日志。 2.创建一个接口ArtithmeticCalculator并实现package com.dhx.spring.aop.helloword;public interface ArtithmeticCalculator { //加法运算 int add(int i,int j); /...翻译 2019-01-24 09:41:56 · 162 阅读 · 0 评论 -
spring Aop——前置通知
一:AspectJ1.AspectJ:java社区里最完整最流行的AOP框架。2.在spring2.0以上版本中,可以使用基于AspectJ注解或基于XML配置的AOP。二:在spring中启用AspectJ注解支持1.要在spring应用中使用AspectJ注解,必需在classpath下包含AspectJ类com.springsource.org.aopalliance-1...翻译 2019-01-28 17:18:59 · 326 阅读 · 0 评论 -
Spring AOP——后置通知
一:后置通知1.后置通知是在连接点完成之后执行的,即连接点返回结果或者抛出异常的时候,下面的后置通知记录了方法的终止2.一个切面可以包括一个或者多个通知二:代码实现1.后置通知方法package com.dhx.spring.aop.impl;import java.util.Arrays;import java.util.List;import org.aspec...翻译 2019-01-28 19:32:10 · 363 阅读 · 1 评论 -
Spring AOP——结果通知&&异常通知&&环绕通知
package com.dhx.spring.aop.impl;import java.util.Arrays;import java.util.List;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.A...翻译 2019-01-29 10:28:50 · 364 阅读 · 0 评论 -
Spring-AOP——切面的优先级
一:切面的优先级1.可以使用@Order注解指定切面的优先级,值越小优先级越高。2.package com.dhx.spring.aop.impl;import java.util.Arrays;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.Aspect;import org.as...翻译 2019-01-29 11:06:49 · 463 阅读 · 0 评论 -
Spring AOP-重用切点表达式
一:重用切点表达式package com.dhx.spring.aop.impl;import java.util.Arrays;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import ...翻译 2019-01-29 11:45:43 · 175 阅读 · 0 评论 -
基于XML配置文件的方式配置AOP
一:配置文件配置AOP1.创建ArtithmeticCalculator接口并实现package com.dhx.spring.aop.xml;public interface ArtithmeticCalculator { //加法运算 int add(int i,int j); //减法运算 int sub(int i,int j); //乘法运算 int...翻译 2019-01-29 15:20:07 · 375 阅读 · 0 评论 -
在JDBC模板中使用具名参数
1.在经典的JDBC用法中,SQL参数是用占位符?表示,并且受到位置的限制,定位参数的问题在于,一旦参数的顺序发生变化,就必须改变参数绑定。2.在使用JDBC框架中,绑定SQL参数的另一种选择是使用具名参数(namedparamenter)3.具名参数:SQL按名称(以冒号开头)而不是按位置进行指定具名参数更易于维护,也提升了可读性,具名参数由框架类在运行时用占位符取代。4.具名参数只...翻译 2019-05-08 22:03:36 · 283 阅读 · 0 评论 -
Spring使用jdbcTemplate
一:jdbcTemplate简介为了使JDBC更加易于使用,Spring在JDBC API上定义了一个抽象层,以此建立一个JDBC存取框架 作为Spring JDBC框架的核心,JDBC模板设计目的是为不同类型的JDBC操作提供模板方法,每个模板方法都能控制整个工程,并允许覆盖过程中的特定任务,通过这种方式可以在尽可能保留灵活性的情况下,将数据库存取的工作量降到最低二:搭建环境1.创...翻译 2019-12-10 22:13:27 · 96 阅读 · 0 评论 -
Spring中的事务管理
一:事务简介事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性。 事务就是一系列动作,他们被当作一个单独的工作单元,这些动作要么全部完成,要么全部不起作用。 事务的四个关键属性(ACID)原子性(atomicity):事务是一个原子操作,有一系列动装组成,事务的原子性确保动作要么全部完成,要么全部不起作用。 一致性(consistency):一旦所有事务动作完成...原创 2019-12-11 16:49:55 · 76 阅读 · 0 评论 -
Spring中声明式事务
1.创建一个BookShopDao接口package com.dhx.tx;public interface BookShopDao { //根据书号获取单价 public int findBookPriceByIsbn(String isbn); //更新书的库存 public void updateBookStock(String isbn); //更新账户余额...原创 2019-12-11 17:16:36 · 83 阅读 · 0 评论