千峰Spring
Spring基础
蝶衣_疯魔
日拱一卒无有尽,功不唐捐终入海!
蝶衣_疯魔--来自《霸王别姬》人物程蝶衣--不疯魔不成活
展开
-
61.第五章总结
1.Spring的bean的作用域2.作用域配置3.延迟加载4.初始化和销毁方法5.工厂方法原创 2020-01-10 10:42:30 · 73 阅读 · 0 评论 -
60.工厂方法创建bean对象
1.spring中初始化对象的其他方式: (基于xml,在配置类与自动装配中不存在直接写代码就可以了)工厂方法:1.静态工厂 2.实例工厂1.1 静态工厂新建一个类实现一个最原始的工厂方法在配置文件中声明工厂方法测试:工厂方法的特点:初始化就会创建对象获取person对象2.1 实例工厂配置两个bean,用第二个调用第一个测试...原创 2020-01-10 10:38:31 · 119 阅读 · 0 评论 -
59.对象的初始化和销毁
目的:在容器销毁的时候,自动调用destory方法,做一些内存空间的清理工作,或是一些资源的处理工作1.xml的方式首先在类中声明两个方法:1.1 在xml配置文件中配置初始化和销毁方法1.2 初始化主动调用销毁方法:另一种调用销毁的方法:关闭容器,会自动触发销毁方法的调用2.在javaConfig中和自动装配中的初始化(PostConst...原创 2020-01-10 10:15:56 · 108 阅读 · 0 评论 -
58.延迟加载
1.默认单例的积极加载策略:只要启动就加载容器中的对象2.在开发中,如果我们想什么时候使用,什么时候再加载,要想bean按序加载,可以添加属性lazy-init默认是false3.重新测试1用例:在没有获取bean对象的时候不会被加载,构造函数不会被执行4.获取bean对象:延迟加载5.配置文件的延迟加载:注意!prototype默认是延迟加载,延迟加载...原创 2020-01-10 09:57:25 · 133 阅读 · 0 评论 -
56.自动装配中定义bean的作用域,57.javaConfig装配中定义bean的作用域
1.新建一个NotePad2类,并配置全局扫描和scope属性2.在xml配置文件中启动全局扫描3.创建测试类4、新建一个NotePad3类,因为是javaConfig不用在类中声明注解。新建一个配置类AppConfig:在配置类中使用@Configuration注解,声明这是配置类,在配置类中可以定义多个@bean对象,初始化和配置beanscope有多种形式...原创 2020-01-10 09:43:33 · 118 阅读 · 0 评论 -
55.bean的作用域
1.spring容器上下文中的对象默认是单例的,大多数情况下单例bean是一个理想的方案,初始化、垃圾的回收、对象的实例所带来的开销很小,但是开发的时候我们并不希望bean被重用,需每次都获取新的对象,在bean中有一个scope属性bean的作用域:1.简单测试:在没有获取bean对象时,控制台没有任何输出1.1 什么时候获取bean对象,什么时候bean才会被获取出来...原创 2020-01-08 15:57:28 · 90 阅读 · 0 评论 -
53.第五章介绍--高级装配,54.spring中的单例bean
1.第五章的内容也许没有前面几章使用的多,但是在实际开发中还是非常有用的2.bean的作用域首先了解在spring容器中默认单例的模式3.新建一个notepad类,并添加无参构造方法4.新建一个applicationContext.xml,并添加一个bean节点5.创建一个简单的测试类测试结论:目前为止,我们并没有去spring容器中获取任何的bean对象,我们...原创 2020-01-08 15:42:03 · 106 阅读 · 0 评论 -
52.第四章总结
1.id与name的区别2.通过构造函数依赖注入3.集合注入4.属性注入5.3种装配方式原创 2020-01-08 15:12:48 · 84 阅读 · 0 评论 -
51.util名称空间注入
1.它可以处理集合和数组的注入2.在xml中添加util,在文件中添加<util:list><util:list/>idea会自动导入三个链接地址更改:因为是列表bean,需使用-ref...原创 2020-01-07 22:58:19 · 126 阅读 · 0 评论 -
50.p名称空间注入
1.在xml配置文件中声明p名称命名空间2.当p后是自变量使用p名称比property子元素更简洁一些3.当p后不是自变量而是对象的引用,需要添加-ref4,集合和数组占时没有p命名空间,还是用property属性...原创 2020-01-07 22:47:18 · 198 阅读 · 0 评论 -
48.属性注入中注入数组和列表的说明,49.属性注入中注入对象引用
2.属性注入(CDPlayer1)中注入对象引用(compactDisc1)原创 2020-01-07 22:37:04 · 101 阅读 · 0 评论 -
47.属性注入
1.属性注入不再依赖构造函数或c命名空间而是使用set方法 1.1 确保Music类的set方法添加2.新建xml配置文件如果对象是引用,需要使用ref属性,简单的字符串值,使用value就可以了 3.属性与私有的成员变量有什么区别呢?私有成员变量:属性:是将setter方法的set去掉,首写字母变小写测试:...原创 2020-01-07 18:04:27 · 152 阅读 · 0 评论 -
46.注入数组类型
1.声明数组类型的音轨tracks2.如果数组里是简单的数据类型使用value注入,如果是复杂的类型可以使用ref节点,在ref中添加bean属性指定引用原创 2020-01-07 17:46:34 · 173 阅读 · 0 评论 -
44.注入set类型,45.注入map类型
1.更改set集合,spring使用java.util.setset集合的特点所有重复的值要被覆盖掉,本来set集合是无序的,但是spring对set做了处理使用LinkedHashSet,元素的顺序是有保证的。集合装配使用c命名空间是无法实现的,可以使用constructer或property元素2.引入map<键,值>类型,有多个类型修改xml配置文...原创 2020-01-07 17:40:09 · 181 阅读 · 0 评论 -
43.注入list类型
1.创建一个简单的泛型String类型,存放音乐2.循环打印出每一首歌的歌名3.修改配置文件4.在开发中List的类型也许不是一个简单的类型,可能是其他的对象类型创建一个Music类,添加getter、setter有、无参构造方法修改泛型Music5.修改xml配置如果List是简单类型(int、String...)使用value,非简单类型...原创 2020-01-07 11:41:51 · 220 阅读 · 0 评论 -
42.注入简单类型
1.复杂装配,将compactDisc1装配在其他依赖他的类(CDPlay)中而有的时候我们只需要简单的类型装配,例如:我们只想装配一个整型、字符串、布尔值...1.1 根据构造函数的参数顺序来注入2.按name属性注入3.通过index下标4.按数据类型(两个类型一样,默认顺序注入)5.使用c名称空间...原创 2020-01-07 11:22:30 · 131 阅读 · 0 评论 -
38.使用单元测试,39.id和name,40,构造函数注入,41,c名称空间注入
1.RunWith()初始化测试环境2.添加xml配置文件3.自动注入变量名需要和xml配置文件中的bean节点的id相同 3.1 使用其他变量名时,在自动注入下添加@Qualifier注解声明时哪一个具体的id,不然会报错在配置文件中的id是唯一的不能重复,重复了idea之间检查报错,除了使用id属性,还可以使用name属性,他们的作用是一样的,id与name的区别...原创 2020-01-06 11:47:57 · 231 阅读 · 0 评论 -
34.第四章介绍(XML装配),35.创建XML配置规范,36.定义第一个bean
1.目前不推荐使用这种方式,但是在Spring中已经有很长的历史啦,因为有许多XML的项目,因此理解如何在xml中配置,还是十分重要的,除非是维护旧项目,目前建议使用自动注入或者JavaConfigure的方式。2,创建XML配置规范3.定义第一个bean默认给bean对象添加一个id(全限定类名加#0)构造函数:使用主方法测试:...原创 2020-01-05 22:25:29 · 88 阅读 · 0 评论 -
32.处理自动装配的歧义性,33.第三章总结
总结:原创 2020-01-05 21:21:02 · 80 阅读 · 0 评论 -
29.通过构造函数依赖注入,30.更优雅的注入,在@Bean方法中使用参数,31.通过Setter方法依赖注入
1.修改日志打印级别1.新建UserService接口及实现类不再使用自动装配而是使用构造方法装配2.在配置类中添加含有@Bean注解的方法4.测试:5.更优雅的注入,在@Bean方法中使用参数,因为有@Bean注解Spring就会在他的上下文(Spring容器中,寻找有没有UserDao类型的参数被创建出来,所以依赖注入才会成功的被执行)6。使用...原创 2020-01-05 18:53:38 · 190 阅读 · 0 评论 -
28.在javaconfig中配置bean对象
1.Spring要求java配置类不应该包含任何的业务逻辑,它也不应该入侵到其他的业务代码逻辑当中,所以通常将JavaConfig放在单独的包中。(显示配置)假如dao层的代码是第三方代码,甚至被打成了jar包,我们根本不能在上面添加自定义代码的时候,如何利用java机制装配Spring中的Bean,在配置类中自定义一个方法,并在注解上添加@Bean注解,当配置类启动时,@Bean中的方法自动被调...原创 2020-01-05 11:44:29 · 509 阅读 · 0 评论 -
26.第二章总结,27.第三章介绍,java装配
1.@ContextConfiguration可以二选一,使用java配置或Xml配置原创 2020-01-05 11:03:56 · 87 阅读 · 0 评论 -
24.通过xml启用组件扫描,25.idea中spring配置文件关联
1.创建xml配置文件,并启用扫描2.修改配置类的文件(上下文)配置文件关联:(有两种xml和java类的全部勾选)原创 2020-01-04 23:09:48 · 686 阅读 · 0 评论 -
23.设置组件扫描的基础包
1.@ComponentScan会自动扫描该类包下的组件以及子包下的组件指定扫描的包2.使用basePackages(是一个数组),使用这种方式有缺陷,包是字符串不安全,在重构代码后也需要手动修改包名3.使用basePackageClass...原创 2020-01-04 22:47:51 · 170 阅读 · 0 评论 -
22.处理分层架构
1.编写dao接口与dao的实现类2.编写service接口与service的实现类3.编写controller类4.编写测试类总结:写测试方法的时候记得在方法上添加@Test注解不添加是报错:java.lang.Exception: No runnable methods at org.junit.runners.BlockJU...原创 2020-01-04 22:36:22 · 140 阅读 · 0 评论 -
17.自动装配的歧义性,18.使用首选bean,19.使用限定符,20.使用限定符和类id,21.java标准的解决方案
1.提倡面向接口的编程问题:在两个类同时实现统一接口后,在测试类中自动装配,调用哪个类呢?解决方案1(不提倡):写成具体的实现类解决方案2(不提倡)有局限性,依然有歧义性(使用多个):在实现类上添加@Primary注解解决方案3:@Qualifier("Festival")限定符,在测试类中也要使用解决方案4:限定符加id,在Compone...原创 2020-01-04 21:35:45 · 151 阅读 · 0 评论 -
16-使用接口
1.在spring中使用接口开发编写接口类2.编写接口的实现类,添加component注解3.编写配置类4.编写测试类5.测试结果原创 2020-01-04 20:00:39 · 74 阅读 · 0 评论 -
15-require属性
快捷生成判断空的if语句:需判断的值(cd.null)回车分析:在播放器没有CD时,仍然是可以执行的1.将cd这个类的组件Component注释掉2.会报错,找不到这个类3.在成员变量上添加require属性4.运行报空指针异常5.添加非空条件...原创 2020-01-04 17:37:10 · 315 阅读 · 0 评论 -
14.AutoWired的使用场景
一共4中Autowired的使用方法1.使用在构造函数上创建一个电源类重写有参构造函数调用供电方法测试原创 2020-01-04 17:10:57 · 243 阅读 · 0 评论 -
13-使用Junit单元测试
在main下的java包与test下的包虽然物理路径不一样,但是在编译后class文件里是一起的1.引入junit依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12<...原创 2020-01-04 16:49:41 · 102 阅读 · 0 评论 -
12.使用配置类
1.当前我们测试都是在main方法里进行测试的,在实际开发中,如果我们不使用main方法来调用,我们可能通过其他的方法来调用player.play(),可能通过Controller、微信端、安卓端、ios端或直接通过web浏览器调用,如果没有主方法ComponetScan会没有地方放置,应用程序不能自动的组件扫描,因此我们可以将主类和组件扫描进行解耦解耦方法:单独的创建一个类来进行组...原创 2020-01-04 16:04:01 · 310 阅读 · 0 评论 -
10.第二章--自动装配-11.实战
1.依赖注入:通过spring来管理对象,和对象之间的依赖关系2.java中的对象叫做Bean对象。把Spring中创建Bean对象,和Spring中注入依赖的过程叫作装配Bean或Bean的装配3.装配bean的三种方式:1.隐式的Bean发现机制和自动装配(主流)。2.在java中进行显示配置。3.在xml中进行显示配置实战:创建一个CD类,和一个播放类idea快捷生成变...原创 2020-01-04 15:38:20 · 78 阅读 · 0 评论 -
8.idea的config配置
1.解决警告,为我们提供更多的智能提示2.Configure Application Context 警告解决方案:原创 2020-01-03 10:37:17 · 1565 阅读 · 0 评论 -
7.Spring添加log4j日志系统
1.查看pom文件依赖,在pom文件中鼠标右击----选择Diagrams2.日志系统接口4.在官网去查找对应版本的log4j配置文件,Spring.iolog4j文件内容...原创 2020-01-03 10:31:10 · 113 阅读 · 0 评论 -
6.使用XML方式实现Spring基本功能
1.删除没用的包,快捷键Alt+Enter,选择Optimize imports2.创建xml配置文件3.配置文件ApplicationContext.xml是约定俗成的原创 2020-01-03 09:49:23 · 73 阅读 · 0 评论 -
5.什么是Spring
1.组件之间的依赖关系,就是类与类之间的关系2.对象创建、对象之间的关系由Spring管理,不再由程序员创建-----控制反转(IoC)对象之间关系的创建----Spring中叫依赖注入(DI)3.核心模块:Core:控制反转、依赖注入就是在core(核心模块)中实现的Bean:Bean工厂,对象的创建公作Context:称为上下文,IoC容器(Spring容器)就是通过这个模块...原创 2020-01-03 09:25:33 · 92 阅读 · 0 评论 -
Spring管理对象之间的关联关系
1。Spring提供另外一个功能,帮助我们创建对象,以及对象之间的关联关系,就是创建关联关系的代码可以使用@AutoWired代替原创 2020-01-03 08:51:22 · 245 阅读 · 0 评论 -
从Spring容器中获取对象
1.通过Spring容器调用getBean(类对象)方法获取对象原创 2020-01-02 22:51:24 · 1519 阅读 · 0 评论 -
@component、@ComponentScan、Spring容器
1.@component在类上声明该注解后,我们就不用使用new关键字创建类,而是由Spring容器为我们创建。2.在Spring容器初始化的过程中,通过@ComponentScan扫描Component注解下的类,并创建注解下的类。在类的无参构造函数里输出一句话,Spring容器初始化后就会输出。。...原创 2020-01-02 22:43:12 · 242 阅读 · 0 评论 -
学习感悟
1.建立类与类之间的关联关系,最简单的方法就是把一个类作为成员变量。原创 2020-01-02 22:16:18 · 114 阅读 · 0 评论