![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 57
林海静
周全尽至,方可抵达。
展开
-
spring官方项目
spring官方网站:http://spring.io/projects/spring-framework以下为spring官方经典项目,都放在github上面。看官方项目,可以看完整的配置,研究里面代码的写法,不失为学习新技术的好方法。spring-projects/spring-mvc-showcase : springmvc的配置 点击跳转showcase项目地址spring-pro...原创 2018-06-08 20:15:52 · 2097 阅读 · 0 评论 -
Spring注解@ComponentScan自定义扫描类
注:@ComponentScan是用在配置类上的,配置类用@Configuration标记@Filter定义扫描规则//FilterType.ANNOTATION:按照注解//FilterType.ASSIGNABLE_TYPE:按照给定的类型;//FilterType.ASPECTJ:使用ASPECTJ表达式(几乎不用)//FilterType.REGEX:使用正则指定(几乎不用...原创 2018-11-08 16:46:22 · 6573 阅读 · 0 评论 -
Spring注解@Scope-设置组件作用域及bean的创建时间
一、对象的创建模式@Scope的value值:注:最后两种不常用1、spring默认创建对象是单例的定义配置类,加载Person对象单例模式默认不写@Scope标签测试: @Test public void test02(){ AnnotationConfigApplicationContext applicationContext = new Anno...原创 2018-11-08 17:58:05 · 973 阅读 · 0 评论 -
Spring懒加载(延迟加载)@Lazy
一、说明懒加载只针对spring创建bean时模式为单例时存在二、配置配置:加上@Lazy注解,但是必须是单实例模式,因为单例模式时才在spring启动时创建bean测试:...原创 2018-11-08 18:32:25 · 9456 阅读 · 0 评论 -
Spring注解@Conditional--根据条件创建bean
一、源码二、 作用conditon:条件三、例子其中bill和linux是人名1、定义person类:2、定义条件类@Conditional中包含condition数组,所以定义两个条件类其中:【 Environment environment = context.getEnvironment(); String propert...原创 2018-11-08 19:43:31 · 2767 阅读 · 0 评论 -
spring使用注解@Import创建bean
1)import的第一种用法@Import源码,可以接收一个数组进去:在配置类上配置@Import注解,并定义要创建的bean.class;容器启动后就会自动创建导入多个bean对象,传入一个数组进去:2)import的第二种用法:使用ImportSelectorImportSelector源码该类方法意思是返回要导入bean的全类名自定义需要加载的...原创 2018-11-08 20:30:47 · 1318 阅读 · 0 评论 -
Spring使用FactoryBean创建对象
1、实现工厂bean接口2、配置类配置工厂bean3、测试获取bean时,调用的工厂类中的getObject方法。结果:说明:虽然加载的id是工厂类id,但是实际的对象是自己要加载的bean 并且,如果设置为单例,则即使创建两个对象,其实都是统一个对象。编辑自己实现的工厂类,将工厂类中是否单例设置为false结果:...原创 2018-11-08 20:57:22 · 3258 阅读 · 4 评论 -
Spring创建对象的几种方式
* 1)、包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)[自己写的类] * 2)、@Bean[导入的第三方包里面的组件]参考博客:Spring注解@ComponentScan自定义扫描类参考博客:Spring注解@Scope-设置组件作用域及bean的创建时间参考博客:Spring懒加载(延迟加载)@...原创 2018-11-08 21:04:47 · 715 阅读 · 0 评论 -
Spring之声明式事务Transaction-环境搭建
环境搭建步骤: * 1、导入相关依赖 * 数据源、数据库驱动、Spring-jdbc模块 * 2、配置数据源、JdbcTemplate(Spring提供的简化数据库操作的工具)操作数据 * 3、给方法上标注 @Transactional 表示当前方法是一个事务方法; * 4、 @EnableTransactionManagement 开启基于注解的事务管理功能; * ...原创 2018-11-12 15:45:53 · 355 阅读 · 0 评论 -
Spring之声明式事务Transaction-源码执行解析
源码执行流程: * 1)、@EnableTransactionManagement * 利用TransactionManagementConfigurationSelector给容器中会导入组件 * 导入两个组件 * AutoProxyRegistrar * ProxyTransactionM...原创 2018-11-12 16:14:56 · 175 阅读 · 0 评论 -
Spring监听器之ApplicationListener原理及源码解析及实例
一、原理及源码解析事件:ContextRefreshedEvent、IOCTest_Ext$1[source=我发布的事件]、ContextClosedEvent;* 1)、ContextRefreshedEvent事件:* 1)、容器创建对象:refresh();* 2)、finishRefresh();容器刷新完成会发布ContextRefreshedEv...原创 2018-11-12 20:32:09 · 18388 阅读 · 0 评论 -
Spring后置处理器之-BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor
BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的参考博客:Spring后置处理器之-BeanPostProcessorBeanFactoryPostProcessor是什么:beanFactory的后置处理器;* 在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容;* ...原创 2018-11-12 18:28:46 · 4496 阅读 · 4 评论 -
Spring源码分析之BeanFactory对象创建
Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理; 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、earlyApplicationEvents=...原创 2018-11-13 20:34:54 · 1290 阅读 · 0 评论 -
Spring之注解版AOP的使用案例
AOP:【动态代理】* 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;** 1、导入aop模块;Spring AOP:(spring-aspects包)* 2、定义一个业务逻辑类(MathCalculator);在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出现异常,xxx)* 3、定义一个日志切面类(LogAsp...原创 2018-11-11 15:13:41 · 4299 阅读 · 4 评论 -
Spring之@Profile动态指定切换环境
@Profile原理:* Spring为我们提供的,当配置文件类或者方法加了@Profile时,只有被调用才能生效;如果不调用,这spring容器中不会进行加载;* 场景:开发环境、测试环境、生产环境的切换* 通过不同的数据源访问不同的生产环境;* @Profile:指定组件在哪个环境被调用的情况下才能被注册到容器中;不指定@Profile,任何环...原创 2018-11-10 23:02:33 · 2561 阅读 · 0 评论 -
web.xml详解
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://j原创 2018-06-08 20:17:30 · 118 阅读 · 0 评论 -
spring父子容器
一、Spring父容器(ContextLoaderListener)初始化:dao ,service(aop增强) 二、Spring子容器(DispatcherServlet)初始化:Controller(action) 分开定义的好处:Spring父容器还可以和其他容器结合比如Struts,扩展性更好注意:ContextLoaderListener和Dispatche...原创 2018-07-23 18:18:27 · 151 阅读 · 0 评论 -
Spring中Bean的生命周期之初始化和销毁总结
一、基本概念bean的生命周期: bean创建---初始化----销毁的过程容器管理bean的生命周期; 我们可以自定义初始化和销毁方法;容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法二、spring创建对象的时间 单实例:在容器启动的时候创建对象 多实例:在每次获取的时候创建对象,容器启...原创 2018-11-09 13:52:26 · 774 阅读 · 0 评论 -
Spring中Bean的生命周期之-----@Bean方法进行对象的初始化和销毁
方法:通过@Bean指定init-method和destroy-method;注:单实例和原型模式对象的创建时间和初始化销毁的时间顺序不同。一、单实例模式1、创建Car实例对象,并创建初始化和销毁方法package com.atguigu.bean;import org.springframework.stereotype.Component;@Componentpub...原创 2018-11-09 14:45:06 · 1464 阅读 · 0 评论 -
Spring中Bean的生命周期之-----InitializingBean,DisposableBean
方法:通过让Bean实现InitializingBean(定义初始化逻辑), DisposableBean(定义销毁逻辑)注:单例模式下容器会自动销毁bean,但原型模式下不会销毁,也就是不会调用销毁方法。1、创建一个Bean类承接口InitializingBean,DisposableBean,实现初始化方法afterPropertiesSet()和销毁方法destroy()并用...原创 2018-11-09 15:11:10 · 504 阅读 · 0 评论 -
Spring中Bean的生命周期之-----JSR250的@PostConstruct和@PreDestroy
方法:使用JSR250; 在初始化方法上面添加:@PostConstruct注解;在销毁方法上面添加: @PreDestroy注解; @PostConstruct:在bean创建完成并且属性赋值完成;来执行初始化方法 @PreDestroy:在容器销毁bean之前通知我们进行清理工作注:单实例时容器关闭的时候会销毁对象;多实例...原创 2018-11-09 15:41:53 · 643 阅读 · 0 评论 -
Spring后置处理器之-BeanPostProcessor
在bean初始化前后进行一些处理工作;BeanPostProcessor【interface】:bean的后置处理器; 方法postProcessBeforeInitialization():在初始化之前工作 方法postProcessAfterInitialization():在初始化之后工作*BeanPostProcessor...原创 2018-11-09 16:32:52 · 520 阅读 · 0 评论 -
Spring中Bean的属性赋值@Value()---使用类配置的方式
//使用@Value赋值的几种类型; //1、基本数值 //2、可以写SpEL; #{} //3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)一、新建person.properties文件内容:person.nickName=小张三二、新建配置类MainConfigOfPropertyValues.java...原创 2018-11-09 19:23:59 · 11852 阅读 · 0 评论 -
Spring中Bean的自动装配之@Autowired
Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值;*@Autowired:自动注入:* 1)、默认优先按照类型去容器中找对应的组件:applicationContext.getBean(BookDao.class);找到就赋值* 2)、如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找* ...原创 2018-11-09 20:32:30 · 5190 阅读 · 0 评论 -
Spring中Bean的自动装配之@Resource、@Inject
Spring还支持使用@Resource(JSR250)和@Inject(JSR330)[java规范的注解] * @Resource: * 可以和@Autowired一样实现自动装配功能;默认是按照组件名称进行装配的; * 没有能支持@Primary功能,没有支持@Autowired的(reqiured=false); ...原创 2018-11-10 18:19:10 · 834 阅读 · 1 评论 -
Spring之自定义组件实现xxxAware来使用Spring容器底层的一些组件
自定义组件想要使用Spring容器底层的一些组件(如想使用ApplicationContext,BeanFactory对象等等); * 自定义组件实现xxxAware;在容器创建对象的时候,会调用接口规定的方法注入相关组件;这样自定义类中就拥有了Spring容器底层的一些组件 * 每一个xxxAware都有一个xxxProcessor来实现其方法; * ...原创 2018-11-10 21:52:25 · 452 阅读 · 0 评论 -
Mybatis整合Spring和SpringMVC配置文件详解
配置文件pom.xml(配置我们需要的jar包) web.xml(启动spring容器监听器并加载spring的xml文件,加载springmvc前端控制器) springmvc的配置文件(配置IOC自动注入视图对象(controller),前端页面映射配置,静态资源配置) spring的配置文件(创建对象配置IOC自动注入业务对象(非cont),数据库配置,事物管理,和mybat...原创 2018-11-20 14:14:47 · 22790 阅读 · 8 评论