![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
spring
文章平均质量分 68
java spriing
Torey_Li
本博客主要要来记录学习的课程以及工作中遇到的问题,积累技术,锤炼思维,认识更多的朋友
展开
-
18-使用Java Config实现Spring Ioc
18-使用Java Config实现Spring Ioc回到spring导航页基于Java Config的优势完全摆脱XML的束缚,使用独立Java类管理对象与依赖注解配置相对分散,利用Java Config可对配置集中管理可以在编译时进行依赖检查,不容易出错基于Java Config的缺点如果后续需要更改接口实现类,则需要修改源码,重新编译打包发布18-Java Config-对象实例化Java Config核心注解注解说明@Configuration描述原创 2021-05-01 13:46:14 · 168 阅读 · 0 评论 -
17-spring 其他元数据注解
使用注解方式实现Spring IoC回到spring导航页17-spring 其他元数据注解常用的元数据注解如下:注解说明@Primary按类型装配时出现多个相同类型对象,拥有此注解对象优先被注入@PostConstruct描述方法,相当于XML中init-method配置的注解版本@PreDestroy描述方法,相当于XML中的destroy-method配置的注解版本@Scope设置对象的Scope属性@Value为属性注入静态数据@S原创 2021-05-01 13:45:11 · 145 阅读 · 1 评论 -
16-@Resource和@Autowired注解的区别?
使用注解方式实现Spring IoC回到spring导航页16-@Resource和@Autowired注解的区别?Bean注入有@Resource和@Autowired两种方式,这两种注解是什么意思,它们有什么区别?@Resource@Resource注解属于J2EE,有两个属性:name和type,而Spring将@Resource注解的name属性解析为bean的名称,type属性则解析为bean的类型。@Resource默认按名称进行装配,名称可以通过name属性进行指定。@Autowi原创 2021-05-01 13:44:35 · 168 阅读 · 0 评论 -
15-@Resource注解按名称装配
使用注解方式实现Spring IoC回到spring导航页两类自动装配注解分类注解说明按类型装配@Autowired按容器内对象类型动态注入属性,由Spring机构提供@Inject基于JSR-330(Dependency Injection for java)标准,其他同@Autowired,但不支持required属性按名称装配@Named与@Inject配合使用,JSR-330规范,按属性名自动装配属性@Resource基于JSR-250规范,优先按名称、再按类型智能原创 2021-05-01 13:43:48 · 1475 阅读 · 0 评论 -
14-自动装配与Autowired
使用注解方式实现Spring IoC回到spring导航页14-自动装配与Autowired两类自动装配注解分类注解说明按类型装配@Autowired按容器内对象类型动态注入属性,由Spring机构提供@Inject基于JSR-330(Dependency Injection for java)标准,其他同@Autowired,但不支持required属性按名称装配@Named与@Inject配合使用,JSR-330规范,按属性名自动装配属性@Resource基于JSR-原创 2021-05-01 13:43:10 · 167 阅读 · 1 评论 -
13-四种组件类型注解
13-使用注解方式实现Spring IoC回到spring导航页基于注解与Java Config配置IoC容器,使用注解或者Java Config与xml底层实现都是一样的13-四种组件类型注解基于注解的优势拜托繁琐的XML形式的bean 与依赖注入的配置注解是基于“声明式”的原则,更适合轻量级的现代企业应用利用注解可以让代码可读性变得更好,研发人员拥有更好的开发体验spring 注解按功能划分组件类型注解-声明当前类的功能与职责自动装配注解-根据属性特征自动注入对象元数据注解-原创 2021-05-01 13:42:36 · 1202 阅读 · 0 评论 -
12-自己实现一个极简的IoC容器
12-自己实现一个极简的IoC容器回到spring导航页pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO原创 2021-05-01 13:41:29 · 120 阅读 · 0 评论 -
11-bean生命周期
11-bean生命周期回到spring导航页IoC的初始化第一步为解析ApplicationContext.xml文件,看一下ApplicationContext.xml文件中需要创建哪些对象,而且为哪些对象注入哪些属性,紧接着就是对象实例化,执行构造函数,IoC会根据xml文件通过反射实例化对应的bean,同时基于java的规则,对应的构造方法也会执行,接下来就是为对象注入属性,也就是为当前新建的对象注入哪些属性,当对象注入以后,由IoC容器会自动的调用对象的init-method初始化方法来完成这个原创 2021-05-01 13:40:43 · 126 阅读 · 0 评论 -
10-Bean对象的作用域及生命周期
10-Bean对象的作用域及生命周期回到spring导航页10-bean scope属性讲解bean scope属性用于决定对象何时被创建与作用范围bean scope配置将影响容器内对象的数量bean scope默认值singleton(单例),指全局共享同一个对象实例bean scope属于用于决定对象何时被创建与作用范围bean scope配置将影响容器内对象的数量默认情况下bean会在IoC容器创建后自动实例化,全局唯一scope用法<bean id="c1" clas原创 2021-05-01 13:40:05 · 147 阅读 · 5 评论 -
9注入集合对象
9注入集合对象回到spring导航页注入List伪代码如下<bean id="..." class="..."> <property name="someList"> <list> <value>具体值1</value> <value>具体值2</value> </list> </property></bean><bean id="原创 2021-05-01 13:39:09 · 115 阅读 · 0 评论 -
8利用构造方法实现对象依赖注入
8利用构造方法实现对象依赖注入回到spring导航页依赖注入是指运行时将容器内对象利用反射赋给其他对象的操作基于setter方法注入对象基于构造方法注入对象<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2021-04-29 23:36:56 · 348 阅读 · 0 评论 -
7IoC在实际项目中的用途
7IoC在实际项目中的用途回到spring导航页如何通过IOC将对象之间解耦,进而让我们软件团队协作之间出现解耦,如下代码模拟了:张三、李四开发,张三负责dao层(也就是对数据库的增删改查),李四负责service层(也就是业务逻辑层),前期项目使用的mysql数据库,后期又修改成了oracle数据库的场景,代码如下:创建maven工程<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apac原创 2021-04-29 23:36:10 · 873 阅读 · 1 评论 -
6SpringIoc路径表达式用法
6SpringIoc路径表达式用法回到spring导航页表达式实例说明classpath:config.xml扫描classpath根路径(不包含jar)的config.xmlclasspath:com/torey/config.xml扫描classpath下(不包含jar)com.torey包中的config.xml文件classpath*:com/torey/config.xml扫描classpath下(包含jar)com.torey包中的config.xml文原创 2021-04-29 23:35:21 · 151 阅读 · 0 评论 -
5IoC中获取bean
5IoC中获取bean回到spring导航页//classpath: 代表resources目录下 ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); Apple appleA = context.getBean("appleA",Apple.class); System.out.println(appleA原创 2021-04-29 23:34:35 · 155 阅读 · 0 评论 -
4初始化IoC容器
4初始化IoC容器回到spring导航页IoC容器管理bean有三种方式基于XML管理Bean基于注解配置Bean基于Java代码配置BeanXML管理对象(bean)<!--什么属性都不写,默认调用的是空构造函数--> <bean id="appleA" class="com.torey.spring.ioc.entity.Apple"> </bean>实例化Bean的三种方式基于构造方法对象实例化基于静态工厂实例化基于工厂原创 2021-04-29 23:34:03 · 108 阅读 · 0 评论 -
3Spring IoC初体验
3Spring IoC初体验回到spring导航页Spring IoC初体验-示例代码妈妈在早晨后给三个孩子分发餐后水果盘子里有三个苹果:红富士、青苹果、金帅孩子们口味不同:莉莉喜欢甜的、安妮喜欢酸的、露娜喜欢软软的孩子如何得到喜欢的苹果呢?原始代码实现如下功能[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pRv25hk0-1619710363201)(https://img.znyd365.com/torey/java/java4/1spring/1.p原创 2021-04-29 23:33:08 · 126 阅读 · 0 评论 -
2spring初识
2spring初识回到spring导航页spring 快速入门spring XML配置对象实例化配置依赖注入配置注解与Java ConfigSpring 单元测试IoC控制反转将对象的控制权交由第三方管理。Ioc控制反转(Inverse of Control),是一种设计理念由代理人来创建和管理对象,消费者通过代理人来获取对象IoC的目的是降低对象之间的直接耦合加入IoC容器将对象统一管理,让对象关联变为弱耦合DI依赖注入IoC是设计理念,是现代程序设计遵循的标准,是原创 2021-04-29 23:32:31 · 102 阅读 · 0 评论 -
1Spring 简介
Spring 简介回到spring导航页Spring Ioc内容说明重要程度Spring 框架介绍Spring IoC、DI和AOP等核心概念*****Spring IoC容器Spring实例化与管理对象*****集合对象注入注入List、Set、Map集合对象*****底层原理Spring Bean的生命周期*****注解与Java ConfigSpring注解分类和常用注解应用*****Spring AOP内容说明原创 2021-04-29 23:31:54 · 75 阅读 · 0 评论 -
1 spring AOP- 面向切面编程
编程范式概览面向过程编程面向对象编程函数式编程事件驱动编程面向切面编程AOP是什么是一种编程范式,不是编程语言解决特定问题,不能解决所有问题是OOP的补充,不是替代AOP的初衷DRY: Don’t Repeat Yourself (不要写重复的代码)SoC: Separation of Concerns (关注点分离)关注点分离可以有很多种:水平分离:展示层...原创 2019-09-04 22:57:17 · 121 阅读 · 0 评论 -
spring容器bean的作用域
默认从spring容器中获取的对象都是单例的,可以通过xml和注解的方式设置对象为非单例。主要通过Scope关键字设置。1 XML配置文件设置的方法:<!--scope="singleton" 是单例,scope="prototype" 是非单例-->2 注解的配置方法://@Scope(value = "singleton") // 单例,默认为单例@Sco...原创 2018-08-18 18:13:31 · 314 阅读 · 0 评论 -
3 Spring Bean装配之Bean的配置项及作用域
专题二 BeanBean的配置项Bean的作用域Bean的生命周期Bean的自动装配Resources&ResourceLoaderBean的配置项Id 整个IOC容器中的唯一标识Class 具体要实例化的哪一个类Scope 范围,作用域Constructor arguments 构造器的参数,构造器注入会用到Properties 属性,设值注...原创 2019-08-25 09:13:41 · 194 阅读 · 0 评论 -
4-1 Spring Bean装配之Bean的定义及作用域的注解实现
Bean管理的注解实现及例子Classpath扫描与组件管理类的自动检测与注册Bean< context:annotation-config />@Component,@Repository,@Service,@Controller@Required@Autowired@Qualifier@ResourceClasspath扫描与组件管理从Spring3.0开...原创 2019-08-25 20:23:27 · 176 阅读 · 0 评论 -
4-2 Spring Bean装配之Autowired注解说明-1
Required 不常用Required注解适用于bean属性的setter方法这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在bean定义或通过自动装配一个明确的属性值Required 这整个应用中并不常用public class SimpleMovieLister { private MovieFinder movieFinder; @Require...原创 2019-08-25 21:45:42 · 295 阅读 · 0 评论 -
4-3 Spring Bean装配之Autowired注解说明-2
@Autowired可以使用@Autowired注解那些众所周知的解析依赖性接口,比如:BeanFactory,ApplicationContext,Environment,ResourceLoader,ApplicationEventPublisher,and MessageSource可以通过添加注解给需要该类型的数组的字段或方法,以提供ApplicationContext中的所有特定类...原创 2019-08-25 22:56:36 · 199 阅读 · 0 评论 -
2 Spring IOC容器
2-1 IOC及Bean容器接口及面向接口编程什么是IOCIOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护DI:依赖注入,是一种实现的方式目的:创建对象并且组装对象之间的关系Spring的Bean配置Bean的初始化Spring的常用注入方式2-2 Spring注入方式...原创 2019-08-18 11:51:03 · 110 阅读 · 0 评论 -
4-4 Spring Bean装配之AutoWired注解说明-3
@Qualifier按类型自动装配可能多个bean实例的情况,可以使用Spring的@Qualifier注解缩小范围(或指定唯一),也可以用于指定单独的构造器参数或方法参数可用于注解集合类型变量...原创 2019-08-30 21:08:51 · 181 阅读 · 0 评论 -
4-5 Spring Bean装配之基于Java的容器注解-@Bean
基于java的容器注解@Bean标识一个用于配置和初始化一个由SpringIoC容器管理的新对象的方法,类似于XML配置文件的< bean/ >可以在Spring的@Component注解的类中使用@Bean注解任何方法(仅仅是可以)上一点中,通常使用的是@Configuration@Bean的例子pom.xml<dependency> <...原创 2019-08-30 22:01:57 · 241 阅读 · 0 评论 -
4-6 Spring Bean装配之基于Java的容器-@ImportResource和@Value
如何使用@ImportResource和@Value注解进行资源文件读取原创 2019-09-01 09:33:31 · 153 阅读 · 0 评论 -
4-7 Spring Bean装配之基于Java的容器-@Bean and @Scope
@Bean and @Scope默认@Bean是单例的,如何指定Bean的范围,则是用@Scope这个注解Bean的作用域包括singleton、prototype、request、session、global session在Scope里面还有一个属性proxyMode,proxyModel:是采用哪一种的代理方式,基于类的代理或者基于接口的代理:ScopedProxyMode.TARG...原创 2019-09-01 12:57:28 · 123 阅读 · 0 评论 -
4-8 Spring Bean装配之基于Java的容器-基于泛型的自动装配
基于泛型的自动装配基于泛型的自动装配是spring4中新增的内容。泛型自动装配例子:public interface Store<T> {}public class IntegerStore implements Store<Integer> {}public class StringStore implements Store<String&g...原创 2019-09-01 15:44:37 · 251 阅读 · 0 评论 -
4-9 Spring Bean装配之Spring对JSR标准的支持
@ResourceSpring还支持使用JSR-250@Resource注解的变量或setter方法,这是一种在Java EE 5和6的通用模式,Spring管理的对象也支持这种模式@Resource有一个name属性,并且默认Spring解释该值作为被注入bean的名称如果没有显示地指定@Resource的name,默认的名称是从属性名或者setter方法得出注解提供的名字被解析为一...原创 2019-09-01 17:21:26 · 152 阅读 · 0 评论 -
5-1 AOP基本概念及特点
AOP几个相关概念名称说明切面(Aspect)一个关注点的模块化,这个关注点可能会横切多个对象连接点(Joinpoint)程序执行过程中的某个特定的点通知(Advice)在切面的某个特定的连接点上执行的动作切入点(Pointcut)匹配连接点的断言,在AOP中通知和一个切入切入点表达式关联引入(Introduction)在不修改类代码的前提下...原创 2019-09-01 19:11:46 · 421 阅读 · 0 评论 -
5-2配置切面aspect
Schema – based AOPSpring所有的切面和通知器都必须放在一个< aop:config >内(可以配置包含多个< aop:config >元素),每一个< aop:config> 可以包含pointcut,adviso和aspect元素(它们必须按照顺序进行声明)< aop:config >风格的配置大量使用了Spring的自...原创 2019-09-01 19:51:11 · 168 阅读 · 0 评论 -
5-3 配置切入点Pointcut
** 在AOP中通知Advice和一个切入点表达式关联**execution用于匹配方法执行的连接点pointcutexecution(public **(…))execution( set)原创 2019-09-02 07:38:39 · 288 阅读 · 0 评论 -
spring集合装配
pom.xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.14.RELEASE</version> ...原创 2019-09-04 07:31:58 · 144 阅读 · 0 评论 -
spring容器延迟加载
spring容器默认加载bean为即时加载,既在没有使用类的情况下,会初始化bean对象,这样会造成内存及性能的浪费,我们可以在xml里和用注解的方式设置bean为懒加载,既在使用的时候才会初始化bean对象。方法如下:一 在XML里配置单个bean对象为懒加载二 使用注解的方式配置懒加载...原创 2018-08-18 14:35:08 · 2219 阅读 · 0 评论