Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。一站式框架是指有EE开发的每一层解决方案:
目前Spring有两个版本:Spring3.X 和 Spring4.X,这里我们将展开Spring4.X的学习。
Spring框架下拥有9大模块,对于小白来讲还是从IOC来进行入门学习的。我们可以从Spring的官网:http://spring.io/来下载spring4.X的开发包,下载并解压后可以看到如下目录:
在spring-framework-4.2.4.RELEASE-dist目录下有全部的Spring文件:
下面开始学习Spring 的IOC模块,加油骚年们!
Spring IOC就是Spring框架中底层的Core Container中的内容;IOC(inversion of control)控制反转,是将对象的创建权反转交给Spring来管理。在实际的开发中,如果底层的实现切换了,需要修改源代码?大部分的Demo都是需要的,这是因为代码模块之间的耦合度太高,有的甚至牵一发而动全身,显然这样的情景放在实际企业级开发中是非常糟糕的,为了实现不修改代码(低耦合性),在Spring框架中就引入了工厂+反射+配置文件的方法,利用工厂代理来降低代码模块之间的耦合性,如下图所示:
创建web项目并引入对应IOC支持的jar包:
创建接口和实现多个实现类(便于测试):
public interface UserDao{
public void save();
}
public class UserDaoImpl1 implements UserDao{
public void save()
{
System.out.println(“UserDaoImpl1执行了。。。”);
}
}
public class UserDaoImpl2 implements UserDao{
public void save()
{
System.out.println(“UserDaoImpl2执行了。。。”);
}
}
创建applicationContext.xml文件:
参考spring的解压路径下spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html来编写applicationContext.xml文件
编写测试类:
ApplicationContext applicationContext=new ClassPathXmlApplicationContext(“applicationContext.xml”);
UserDao userDao = (UserDao)applicationContext.getBean(UserDao.class);
userDao.save( );
引入Spring IOC后我们就可以通过更改applicationContext.xml文件中Bean的配置来切换userDao.save();实际调用的是实现类中的具体save方法。
依赖
Class A{
}
Class B{
public void xxx(A a){
}
}
继承:is a(接口:like a)
Class A{
}
Class B extends A{
}
聚合:has a
Spring工厂类的结构图:
由图:
Bean的生命周期的配置(了解)
Bean的作用范围的配置(重点)
1.4.1 Spring的Bean的实例化方式(了解)
Bean已经都交给Spring管理,Spring创建这些类的时候,有几种方式:
无参构造方法的方式(默认)
编写类
编写配置
静态工厂实例化的方式
编写Bean2的静态工厂
配置
实例工厂实例化的方式
Bean3的实例工厂
配置
1.构造方法的方式的属性注入
1.构造方法的属性注入
2.Set方法的方式的属性注入
Set方法的属性注入
Set方法设置对象类型的属性
3.P名称空间的属性注入(Spring2.5以后)
通过引入p名称空间完成属性的注入:
4.SpEL的属性注入(Spring3.0以后)
5.集合类型属性注入(了解)
配置
<bean id="collectionBean" class="com.itheima.spring.demo5.CollectionBean">
<property name="arrs">
<list>
<value>王东value>
<value>赵洪value>
<value>李冠希value>
list>
property>
<property name="list">
<list>
<value>李兵value>
<value>赵如何value>
<value>邓凤value>
list>
property>
<property name="set">
<set>
<value>aaavalue>
<value>bbbvalue>
<value>cccvalue>
set>
property>
<property name="map">
<map>
<entry key="aaa" value="111"/>
<entry key="bbb" value="222"/>
<entry key="ccc" value="333"/>
map>
property>
bean>
在加载配置文件的时候加载多个:
ApplicationContxt applicationContext=new ClassPathXmlApplicationContext(“applicationContext.xml”,”applicationContext2.xml”);
在一个配置文件中引入多个配置文件:
谢谢阅读! -----知飞翀