1.Spring基本用法
来源:互联网 发布:用java编写的过关游戏 编辑:程序博客网 时间:2024/06/06 11:59
Spring 现在很多公司都在使用的一款非常强大的框架,刚开始的时候,只是停留在怎么使用spring框架,慢慢越来越深入了解spring框架的原理,让我重新对这个框架有重新的认识。
其实spring核心机制就是“依赖注入”(IOC)和"面向切面"(AOP)其实 控制反转和依赖注入都是一个意思,一个好的框架要符合“低耦合”,“高内聚” 这也正是验证了spring的核心思想。
1.怎么注入值:
(1) set方法的方式注入值:
例如:在配置文件xml中进行配置bean
<bean id=“xxx” class=“gy.xxx”>
<property name="test" ref="test1"/>
</bean>
<bean id=“test” class=“gy.xxx”>
(2)构造器方式注入值:
例如:在配置文件xml中进行配置bean
<bean id=“xxx” class=“gy.xxx”>
<construtor-arg ref="test"/>
</bean>
<bean id=“test” class=“gy.xxx”>
解析:在spring框架中用xml的配置方式,spring会对上面的配置信息进行解析,用java的反射机制,来获取相应的类。
第一段的黑体字相当于,java中的setTest(Test1 test1)这个方法,而name则代表的是java的要set的变量名称,相应的第二段黑体字也是调用java的带参的构造器。
根据场景不同来比较
set相对构造器注入值优点:
1.类似于javabean相对程序员来说,更容易理解,与使用
2.避免了臃肿的构造器的注入值,性能方面也有很大的提升,因为当spring配置文件初始化的时候,就会连构造器里面的实例也会进行初始化操作
3.多参数的构造器显得有些笨重。
2.怎么获取spring中的bean:
一般在web.xml进行初始化操作,也可以手动获取bean;
例如:
ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");
PersonService personService= (PersonService) ctx.getBean("personService",PersonService.class);
personService.info();
BeanFactory 负责配置、创建、管理的bean的spring根接口 applicationContext则是beanFactory的子接口,跟beanFactory一样的强大,是spring的上下文
3.ApplicationContext的事件机制:
ApplicationContext的事件机制利用的是观察者设计模式。
ApplicationContext有两个事件:
1.ApplicationEvent:容器事件,必须由ApplicationContext发布。
2.ApplicationListener:监听器,可由容器的任何监听器Bean担任。
与所有的事件监听器都是一样的,由事件源、事件和事件监听器组成
//其对象spring容器事件
public class EmailEvent extends ApplicationEvent{
}
//容器的事件监听类必须实现ApplicationListener监听
public class EmailNotifier implements ApplicationListener
{
//该方法会在容器发生事件时自动触发
public void onApplicationEvent(ApplicationEvent evt){
}
}
//spring 中xml配置文件
<bean class="listener.EmailNotifier"/>
当创建spring容器的时候相应的spring监听事件就会创建、加载spring容器,就会触发spring的容器事件。
- 1.Spring基本用法
- Spring 基本用法
- Spring的基本用法
- Spring的基本用法
- 2.Spring基本用法
- 3.Spring基本用法
- 4.spring基本用法
- spring基本用法总结
- Spring的基本用法
- Spring的基本用法:
- Spring(之一)--基本用法
- Spring之IOC基本用法
- @RequestMapping 基本用法 spring mvc
- Spring boot MVC 基本用法
- spring基本用法总结二
- spring-data的基本用法
- Spring中Bean的基本用法
- Spring的基本用法(一)
- HashMap源码分析以及四种遍历方法
- 个人总结——一些凌乱代码的使用
- 公交时间预测线性回归模型
- Android开发屏幕适配方案
- [Android]Context泄露之谜:Handle & 内部类
- 1.Spring基本用法
- final关键字
- 字符编码的故事(ASCII ISO GBK GB2312 UTF-8)
- 【POJ 3630】Phone List(静态字典树)
- java开发定义一个好的变量名
- 前端js冷知识
- AES加解密算法详解
- 自学java(2)
- 超齐全的编程开发资源集