Spring(程序员的春天来了)是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。中文意思为春天简单理解为程序员的春天来了
体系结构
1、Spring core 是spring框架的核心,提供了IOC和依赖注入特性
2、Spring Context 提供了一种框架风格的方式来访问对象,继承了beans包的功能,同时增加了国际化、事件传播、资源装载、以及透明创建上下文
3、Spring AOP 通过配置管理,直接将面向方面编程集成到了框架之中。
4、Spring DAO 提供了JDBC的抽象层。可以消除冗长的JDBC编码和数据库厂商特有的错误代码
控制反转(IOC)
控制反转(IOC--Inversion of control)所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,
依赖注入(DI)
概念:di(Dependency injection )所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到另一个对象的组件中。
注入方式:
1、set 注入(第1种 set注入)
<bean id="he" class="entity.Hello">
<property name="hello" value="我爱北京!!!"/></bean>
2、构造方法注入(第2种 构造方法注入)
<bean id="stu" class="entity.Student">
<constructor-arg index="0" value="张三丰"/>
<constructor-arg index="1" value="18"/>
<constructor-arg name="score" value="98"/></bean>
3、参考注入(接口注入)
<bean id="boy1" class="entity.Boy"></bean>
<bean id="girl" class="entity.Girl">
<property name="boy" ref="boy1"/></bean>
数组 set list map注入
1 、public class Teacher {
private String[]info;//数组
private List list;//List集合
private Set set;//Set集合
private Map map;//Map键值对
//所以对象都有set get方法。。。。
2、<bean id="tea" class="entity.Teacher">
<property name="info"><!-- 注入数组 -->
<array><value>教授</value><value>副教授</value><value>高工</value></array>
</property>
<property name="list"><!-- 注入List集合 -->
<list><value>博士</value><value>硕士</value><value>学士</value></list>
</property>
<property name="set"><!-- 注入Set集合 -->
<set><value>北京</value><value>上海</value><value>南京</value></set>
</property>
<property name="map"><!-- 注入Map集合 -->
<map><entry key="姓名" value="李小龙"></entry><entry key="工资" value="8888"></entry></map>
</property>
</bean>
3
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
Teacher tea = ac.getBean("tea",Teacher.class);
String[] info = tea.getInfo();//取出数组
for(String ss:info){
System.out.println(ss);}
List list = tea.getList();//取出List集合
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));}
Set set = tea.getSet();//取出Set集合
Iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
Map map = tea.getMap();//取出Map中的键和值
Iterator iterator2 = map.keySet().iterator();
while(iterator2.hasNext()){
Object next = iterator2.next();//获取键
System.out.println(next+":"+map.get(next));//get获取值
}
System.out.println(map);
网友评论