序言
本人喜欢参与一些技术社区举办的活动,听的多了,发现企业越来越多的选择开源+linux,好像真的没有.net什么事了,有心的想从.net转到Java,之后去了一家互联网企业全职做Java开发,开发中使用最多的就是Spring,决心系统的学习下Spring。参考的是Spring的官方文档: http://docs.spring.io/spring/docs/4.2.1.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#overview-getting-started-with-spring
配置和使用Bean
在这里我在本地建立了一个简单的Web项目,Web 项目下有两个类Student和Address类,验证一下看看Spring如何管理Bean。
Student类
Address类
配置xml
resources目录下创建Spring 配置文件,我们通过查找spring-beans-3.2xsd中可以返现bean的定义:
其中:
identifiedType:只有一个属性id
beanElements:ben可以配置的元素
beanAttributes:bean 可以配置的属性
配置后
创建容器
通过以上的步骤我们成功利用了ClassPathXmlApplicationContext容器创建了Xml配置的Address实例和Student实例。
Bean可配置属性
- class :创建Bean的类型
- name : Bean的命名
- scope:作用域
- constructor arguments:构造函数的参数
- properties:属性列表
- lazy-initialization mode:懒加载模式
- auto wiring mode:自动装配模式
- initialization method:初始化操作
- destruction method:析构函数
静态方法
在Xml配置中 可以根据制定的静态方法去构造Bean
验证是否成功
工厂实例
如果你有同系列的多个Bean需要创建,你可以定义一个抽象工厂,利用工厂的方法去创建实例,Spring也支持这种配置。
这里我定义了浏览器的基类
Safari 浏览器
Chrome浏览器
抽象工厂
Xml中的配置
测试
这样就可以利用浏览器工厂去创建浏览器了
构造参数注入
有时候类的构造需要传入多个参数,在Spring里我们可以注入构造参数的实例来创建Bean。
这里我定义了一个MacComputer
XML中的配置
测试
简单属性注入
如果Bean 里面的属性可以与String互转,以下两种方式等价
第一种
第二种
简单的属性值可以写成复杂的元素
集合类型的注入
常见的比如Collection、List、Set、Map等