spring
文章平均质量分 68
喝醉的咕咕鸟
每天学一点,进步一点点
展开
-
Spring学习总结
概述1、Spring 是轻量级的开源的 JavaEE 框架 2、Spring可以解决企业应用开发的复杂性 3、Spring 有两个核心部分:IOC 和 Aop(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理(2)Aop:面向切面,不修改源代码进行功能增强 4、Spring 特点(1)方便解耦,简化开发(2)Aop 编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事务操作(6)降低 API 开发难度...原创 2021-03-18 17:29:27 · 248 阅读 · 0 评论 -
Spring学习(三十二)-Spring容器创建流程-02
refresh();:容器刷新//容器刷新操作@Overridepublic void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { //1.刷新前的预处理 prepareRefresh(); //2.获取刷新后的内...原创 2019-01-25 12:20:54 · 172 阅读 · 0 评论 -
Spring学习(三十三)-Spring容器创建流程-03
5.BeanFactoryPostProcessor的方法,BeanFactory的后置处理器,在BeanFactory标准初始化之后执行的。protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) { //执行后置处理器方法 PostProcessorRegis...原创 2019-01-25 12:20:59 · 158 阅读 · 4 评论 -
Spring学习(十一)-组件注册@Lazy
@Lazy:懒加载懒加载: 单实例bean:默认在容器启动的时候创建对象; 懒加载:容器启动不创建对象。第一次使用(获取)Bean创建对象,并初始化;单实例bean测试:public class Person { private String name; private Integer age; private String nickName; ...原创 2019-01-22 12:15:41 · 319 阅读 · 0 评论 -
Spring学习(十二)-组件注册@Conditional
@Conditional:类中组件统一设置。满足当前条件,这个类中配置的所有bean注册才能生效。案例:public class Person { private String name; private Integer age; private String nickName; public String getNickName() { return nickNam...原创 2019-01-22 12:15:46 · 225 阅读 · 0 评论 -
Spring学习(三十四)-Spring容器创建流程-04
7.initMessageSource(): 初始化MessageSource组件(做国际化功能;消息绑定,消息解析)protected void initMessageSource() //获取BeanFactory ConfigurableListableBeanFactory beanFactory = getBeanFactory(); //看容器中是否有id为mess...原创 2019-01-25 12:21:04 · 183 阅读 · 0 评论 -
Spring学习(三十五)-Spring容器创建流程-05
11.finishBeanFactoryInitialization(beanFactory); 初始化所有剩下的单实例bean,单例bean在初始化容器时创建,懒加载在调用的时候创建。//初始化所有剩下的单实例beanprotected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory b...原创 2019-01-25 12:21:08 · 339 阅读 · 0 评论 -
Spring学习(十三)-组件注册@Import
@Import:快速给容器中导入一个组件。@Import导入组件,id默认是组件的全类名。源码:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Import { /** * {@link Configuration}, {@link Im...原创 2019-01-22 12:15:51 · 244 阅读 · 0 评论 -
Spring学习(十四)-组件注册FactoryBean
BeanFacotry是一个类工厂,使用它来创建各种类型的Bean,最主要的方法就是getBean(String beanName),该方法从容器中返回特定名称的Bean,只不过其中有一种Bean是FacotryBean.BeanFacotry源码:public interface BeanFactory { //获取FactoryBean对象 String FACT...原创 2019-01-22 12:16:10 · 279 阅读 · 0 评论 -
Spring学习(十五)-组件注册总结
给容器中注册组件; (1)、包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)[自己写的类] (2)、@Bean[导入的第三方包里面的组件] (3)、@Import[快速给容器中导入一个组件] 1)、@Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名 2)、Imp...原创 2019-01-22 12:16:31 · 99 阅读 · 0 评论 -
Spring学习(十六)-生命周期-Bean
bean的生命周期: bean创建---初始化----销毁的过程 容器管理bean的生命周期; 自定义初始化和销毁方法;容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法。构造(对象创建) 单实例:在容器启动的时候创建对象 多实例:在每次获取的时候创建对象初始化和销毁方式:1)、指定初始化和销毁方法; 通过@Bean...原创 2019-01-22 12:16:52 · 159 阅读 · 0 评论 -
Spring学习(十七)-BeanPostProcessor原理
源码:public interface BeanPostProcessor { //初始化之前 Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException; //初始化之后 Object postProcessAfterInitialization(Ob...原创 2019-01-22 12:17:03 · 199 阅读 · 0 评论 -
Spring学习(十八)-属性赋值-@Value/@PropertySource
Bean属性赋值; 1、基本数值 2、可以写SpEL; #{} 3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)@Value: 1、基本数值 2、可以写SpEL; #{}@PropertySource: 取出配置文件【properties】中的值测试:import org.springframework.b...原创 2019-01-22 12:17:15 · 251 阅读 · 0 评论 -
Spring学习(十九)-自动装配
自动装配: Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值;@Autowired:自动注入,可以用在构造器,参数,方法,属性;都是从容器中获取参数组件的值 1)、[标注在方法位置]:@Bean+方法参数;参数从容器中获取;默认不写@Autowired效果是一样的;都能自动装配 2)、[标在构造器上]:如果组件只有一个有参构造器,这个有...原创 2019-01-22 12:17:33 · 248 阅读 · 0 评论 -
idea工具注册
IDEA注册长久使用:1.链接:https://pan.baidu.com/s/1X13MB3NAt6nEaJpnArfAuw 提取码:fro0将其放置到idea的bin目录下2.修改idea目录下bin目录的两个文件。 idea64.exe.vmoptions idea.exe.vmoptions在两个文件中加入:-javaagent:C:\Program...原创 2019-01-25 12:27:21 · 800 阅读 · 0 评论 -
Spring整合web学习(三十六)-Spring通过注解整合Springmvc
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块(spring-webmvc)的名称,但它通常被称为“Spring MVC”。原先在项目中ssm项目,我们需要配置web.xml。进行大量的配置xml文件方式,在spring项目中整合web容器。如:...原创 2019-01-25 12:21:19 · 347 阅读 · 0 评论 -
Spring学习(二十二-自定义组件(获取IOC容器等等)
自定义组件想要使用Spring容器底层的一些组件(ApplicationContext,BeanFactory等等)。 自定义组件实现xxxAware;在创建对象的时候,会调用接口规定的方法注入相关组件;Aware; 把Spring底层一些组件注入到自定义的Bean中; xxxAware:功能使用xxxProcessor进行处理;解析: ApplicationConte...原创 2019-01-24 01:06:20 · 449 阅读 · 0 评论 -
Spring学习(二十)-自动装配-@Profile环境配置
Profile: Spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能;开发环境、测试环境、生产环境; 数据源:(/A)(/B)(/C);@Profile:指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件源码:@Target({ElementType.TYPE, ElementType.METHOD})...原创 2019-01-25 12:27:29 · 231 阅读 · 0 评论 -
Spring学习(三十一)-Spring容器创建流程-01
由于Spring学习(三)-spring容器初始化加载资源(注解版)写的内容有点乱,因而此处进行分部分析spring启动加载资源流程。 Spring容器的创建和初始化,需要向容器注入各种资源,加载配置文件,初始化单实例的Bean,这就离不开Spring核心容器Context Spring上下文对象。启动类:如下 //web注解版启动类AnnotationConfigW...原创 2019-01-25 12:20:48 · 200 阅读 · 0 评论 -
Spring学习(十)-组件注册@Scope
@Scope:作用范围。源码:@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Scope { //别名 @AliasFor("scopeName") String value() default "";...原创 2019-01-21 13:38:58 · 459 阅读 · 0 评论 -
Spring学习(二十三)-切面编程AOP原理
@EnableAspectJAutoProxy:开启aop切面。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AspectJAutoProxyRegistrar.class)//给容器中导入AspectJAutoProxyRegistrarpublic @interfac...原创 2019-01-24 01:06:29 · 476 阅读 · 0 评论 -
Spring学习(二十四)-Spring事务配置
事务: Java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的操作。事务的四大特性(ACID): 1、原子性(Atomicity): 事务中所有操作是不可再分割的原子单元。事务中所有操作要么都执行成功,要么都执行失败。...原创 2019-01-24 01:06:35 · 156 阅读 · 0 评论 -
Spring学习(二十五)-Spring事务源码分析
Spring事务源码分析:@EnableTransactionManagement 开启基于注解的事务管理功能;给方法上标注 @Transactional 表示当前方法是一个事务方法;@EnableTransactionManagement: @Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Docu...原创 2019-01-24 01:06:40 · 283 阅读 · 0 评论 -
Spring学习(二十六)-BeanFactoryPostProcessor源码分析
BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的。BeanFactoryPostProcessor:beanFactory后置处理器,beanFactory创建对象初始化前后进行拦截工作的。这个时候所有的bean定义已经保存加载到beanFactory,但是bean的实例还未创建。BeanFactoryPostProcessor原理:pu...原创 2019-01-24 01:06:46 · 229 阅读 · 0 评论 -
Spring学习(二十七)-BeanDefinitionRegistryPostProcessor源码分析
BeanDefinitionRegistryPostProcessor:bean的注册信息的注册后置处理器。public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor { /** * Modify the application context's internal bea...原创 2019-01-24 01:06:52 · 264 阅读 · 0 评论 -
Spring学习(二十九)-ApplicationListener用法
ApplicationListener: 监听容器中发布的事件。事件驱动模型开发;源码://监听 ApplicationEvent 及其下面的子事件public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle ...原创 2019-01-24 01:07:16 · 368 阅读 · 0 评论 -
Spring学习(三十)-@EventListener监听事件
@EventListener:监听事件@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface EventListener { /** * Alias for {@link #classes}....原创 2019-01-24 01:07:26 · 4894 阅读 · 0 评论 -
Spring学习(一)-介绍
框架图: 优点: 使Java方法在数据库事务中执行,而不必处理事务API。 使本地Java方法成为HTTP端点,而无需处理Servlet API。 使本地Java方法成为消息处理程序,而无需处理JMS API。 使本地Java方法成为管理操作,而无需处理JMX API。 核心容器:1.核心容器(Core Container): 核心容器包括spri...原创 2019-01-21 13:35:14 · 162 阅读 · 0 评论 -
Spring学习(四)-Bean的定义,解析,注册(BeanDefinition)
Bean:其在spring是主角。所有的事件都是围绕这他进行的。 Bean 在 Spring 中作用就像 Object 对面向对象的意义一样,没有对象的概念就像没有面向对象编程,Spring 中没有 Bean 也就没有 Spring 存在的意义。 Spring Bean 的创建时典型的工厂模式,他的顶级接口是 BeanFactory。 public inter...原创 2019-01-21 13:37:44 · 1345 阅读 · 0 评论 -
Spring学习(二)-依赖注入(DI)和控制反转(IoC)
文章来源:DI与IOC理解原创 2019-01-21 13:35:31 · 121 阅读 · 0 评论 -
Spring学习(三)-spring容器初始化加载资源(注解版)
spring容器启动后,进行初始化操作,向容器注册各种bean资源,包括BeanDefinition的Resource定位、载入和注册。在项目中容器加载资源方式有三种。 通常使用的是ClassPathXmlApplicationContext、AnnotationConfigApplicationContext,XmlWebApplicationContext等。 ...原创 2019-01-21 13:35:48 · 1668 阅读 · 0 评论 -
Spring学习(二十八)-ApplicationListener原理
ApplicationListener原理:public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle an application event. * @param event the event to respond to...原创 2019-01-24 01:06:56 · 790 阅读 · 0 评论 -
Spring学习(五)-Context容器
Context:是spring的核心组件。包路径:org.springframework.context顶级父类:ApplicationContext Spring context是上下文运行环境,也就是常说的spring容器,打个比方,context就像是一个公司,beans则是公司中的各个部门,除了部门,公司还有销售,仓库以及办公场所等等。public interf...原创 2019-01-21 13:36:12 · 776 阅读 · 1 评论 -
Spring学习(六)-Core
Core:Spring容器中的核心组件,用于Beans的管理,其是spring框架中最低层核心的模块。包: 其主要的功能是定义了资源的访问方式,其相当于工具,用于处理容器中的各种bean之间的资源调度,资源访问。提供了各种的接口,定义了处理容器资源方式比如:...原创 2019-01-21 13:38:14 · 243 阅读 · 0 评论 -
Spring学习(七)-三大核心组件概念理解
1.控制反转(IOC): 在没有使用Spring框架的时候,我们在开发中,在一个组件中需要某个对象的时候,我们会自己在该组件中使用new或者getInstance等直接或者间接调用构造方法创建一个对象。而自从Spring出现以后,其为我们提供了控制反转的思想。在一个组件中需要使用某个对象的时候,直接从容器中获取,然后注入到该组件中。实例化一个Java对象有三种方式:使用类构造...原创 2019-01-21 13:38:28 · 945 阅读 · 0 评论 -
Spring学习(八)-组件添加@Configuration/@Bean注解
Spring非注解开发,采用原先的xml方式,在配置一个对象,采用的是xml配置文件的方式,标签使用:<bean></bean>.通过这个注解,向容器中注入该对象。如:<bean id="person" class="com.spring.bean.Person" scope="prototype" > <property name=&原创 2019-01-22 12:14:48 · 290 阅读 · 0 评论 -
Spring学习(九)-组件添加@ComponentScan-自动扫描
@ComponentScan-自动扫描组: 包扫描、只要标注了@Controller、@Service、@Repository,@Component注解。xml配置案例:package com.spring.bean;public class Person { private String name; private Integer age; ...原创 2019-01-21 13:38:43 · 707 阅读 · 0 评论 -
Spring学习(二十一)-切面编程AOP
介绍:AOP:【动态代理】 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; AOP的全称是Aspect Orient Programming,即面向切面编程。是对OOP(Object Orient Programming)的一种补充,战门用于处理一些具有横切性质的服务。常常用于日志输出、安全控制等。主要的的实现技术主要有Spring AOP和As...原创 2019-01-24 01:06:15 · 199 阅读 · 0 评论