spring笔记
来源:互联网 发布:crm软件系统ppt 编辑:程序博客网 时间:2024/06/10 12:07
1.Spring框架的作用
Spring是一个容器性质的框架.可以管理Bean对象的创建和销毁.
Spring容器具有IoC和AoP特性.
2.Ioc和Aop的概念
IoC : Inverse of Controll 反向控制或控制反转.
AoP : Aspect of Programming 切面编程.
3.Spring容器的对象管理
引入spring.jar和commons-logging.jar两个基本包.
(1)创建容器配置文件,添加的定义
(2)创建容器对象,获取bean对象
ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);
ctx.getBean(“别名”); PersonDAO personDAO = (PersonDAO)ctx.getBean(“personDAO”);
4.使用工厂方式创建对象
*(1)容器通过反射创建
(2)工厂方法
(3)静态工厂方法
5.对象的生命周期
(1)对象创建时机
默认是在容器创建时,将对象创建出来.
可以在<bean/>元素中使用lazy-init="true",将该对象指定为使用时创建.
(2)指定对象初始化和销毁方法
可以在<bean/>元素中使用init-method="方法名"指定初始化
方法可以在<bean/>元素中使用destroy-method="方法名"指
定销毁方法,此属性只对单例模式有效
init方法在创建对象时执行,destroy方法在销毁容器时执行.
(3)默认情况下,容器创建的对象的模式是一个单例模式.
可以在<bean/>元素中使用scope指定创建模式.默认为singleton,可以指定为prototype
如果应用于Web环境中,可以指定为request,session,global session
6.DI(依赖注入) Dependence Inject
(1)setter方法注入(推荐使用)
<property name="personDao" ref="personDao2"/>
(2)构造方法注入
<constructor-arg index="0" ref="personDao">
</constructor-arg>
(3)注解方式注入(推荐使用,以后介绍)
1.集合属性注入
注入Set,List,Map,Properties类型的属性值
2.注解方式配置
注解可以简化XML配置.
(1)自动扫描(引入common-annotation.jar包)
a.首先在spring主配置文件中添加
b.在class中使用注解,指定哪些Bean被纳入容器.
@Component、@Controller、@Service、@Repository
注意 : 扫描的组件默认别名为”类名首字母小写”,
可以在注解中指定别名,格式为:@Service(“别名”)
(2)生命周期控制及scope创建模式
@PostConstruct 等价于元素中的init-method
@PreDestroy 等价于元素中的destroy-method
@Scope(“prototype”)等价于元素中的scope=”prototype”属性
(3)注入
a. @Autowired : 按类型匹配注入.如果需要按照名称,可以使用@Qualifier(“personDao”)指定Bean别名
@Autowired(required=false) : required属性表示该属性是否必须注入一个对象.
b. @Resource : 默认先按名称,再按类型.如果需要按照名称,可以使用@Resource(name=”personDao”)
注意:如果单独使用(2),(3)注解,需要在spring配置中添加
如果使用(1),(2),(3)注解,只需要指定自动扫描配置就可以.
Spring是一个容器性质的框架.可以管理Bean对象的创建和销毁.
Spring容器具有IoC和AoP特性.
2.Ioc和Aop的概念
IoC : Inverse of Controll 反向控制或控制反转.
AoP : Aspect of Programming 切面编程.
3.Spring容器的对象管理
引入spring.jar和commons-logging.jar两个基本包.
(1)创建容器配置文件,添加的定义
(2)创建容器对象,获取bean对象
ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);
ctx.getBean(“别名”); PersonDAO personDAO = (PersonDAO)ctx.getBean(“personDAO”);
4.使用工厂方式创建对象
*(1)容器通过反射创建
(2)工厂方法
(3)静态工厂方法
5.对象的生命周期
(1)对象创建时机
默认是在容器创建时,将对象创建出来.
可以在<bean/>元素中使用lazy-init="true",将该对象指定为使用时创建.
(2)指定对象初始化和销毁方法
可以在<bean/>元素中使用init-method="方法名"指定初始化
方法可以在<bean/>元素中使用destroy-method="方法名"指
定销毁方法,此属性只对单例模式有效
init方法在创建对象时执行,destroy方法在销毁容器时执行.
(3)默认情况下,容器创建的对象的模式是一个单例模式.
可以在<bean/>元素中使用scope指定创建模式.默认为singleton,可以指定为prototype
如果应用于Web环境中,可以指定为request,session,global session
6.DI(依赖注入) Dependence Inject
(1)setter方法注入(推荐使用)
<property name="personDao" ref="personDao2"/>
(2)构造方法注入
<constructor-arg index="0" ref="personDao">
</constructor-arg>
(3)注解方式注入(推荐使用,以后介绍)
1.集合属性注入
注入Set,List,Map,Properties类型的属性值
2.注解方式配置
注解可以简化XML配置.
(1)自动扫描(引入common-annotation.jar包)
a.首先在spring主配置文件中添加
b.在class中使用注解,指定哪些Bean被纳入容器.
@Component、@Controller、@Service、@Repository
注意 : 扫描的组件默认别名为”类名首字母小写”,
可以在注解中指定别名,格式为:@Service(“别名”)
(2)生命周期控制及scope创建模式
@PostConstruct 等价于元素中的init-method
@PreDestroy 等价于元素中的destroy-method
@Scope(“prototype”)等价于元素中的scope=”prototype”属性
(3)注入
a. @Autowired : 按类型匹配注入.如果需要按照名称,可以使用@Qualifier(“personDao”)指定Bean别名
@Autowired(required=false) : required属性表示该属性是否必须注入一个对象.
b. @Resource : 默认先按名称,再按类型.如果需要按照名称,可以使用@Resource(name=”personDao”)
注意:如果单独使用(2),(3)注解,需要在spring配置中添加
如果使用(1),(2),(3)注解,只需要指定自动扫描配置就可以.
0 0
- Spring笔记
- Spring笔记
- Spring笔记
- Spring笔记
- spring 笔记
- Spring笔记
- Spring 笔记
- spring笔记
- Spring 笔记
- Spring笔记
- Spring笔记
- Spring笔记
- Spring笔记
- spring 笔记
- Spring笔记
- Spring笔记
- spring笔记
- Spring笔记
- Map.Entry
- matlab图像边缘检测
- 设计模式C++迭代器模式
- HDOJ 1431-素数回文【删除大量无关数据】
- Android:自定义标题栏
- spring笔记
- myeclipse和svn通过代理方式更新代码
- 赶集网mysql开发36军规
- 共同学习Java源码--常用数据类型--String(八)
- linux下安装jdk
- aop
- Linux下安装ActiveMQ CPP
- 【BZOJ2103】【BZOJ2447】Fire 消防站【DFS】【TreeDP】
- 如何使用Nikto漏洞扫描工具检测网站安全