摘要
学习Spring已经很久了,可是自己却觉得抓不住spring引线,不能清楚的将spring中涉及到的知识理出一个头绪来。
如今再回顾,曾经学习到的spring视频。自己认为,spring的核心功能是AOP。然后,再通过AOP来与其他框架进行结合,比如ORM(hibernate),MVC(struts)等来达到解耦的目的。
这张图片反应的是Spring的核心。其中AOP占据了很重要的位置。然而AOP的实现却又依赖于一个很重要的概念——容器。
在Spring主要是通过容器来实现控制反转。通过容器来管理对象之间的关系。这也是AOP思想的一种体现。
容器中不仅可以对对象进行管理,同时还可以进行属性的管理等等。
下面总结常见的spring中IOC的注入
:
1、普通调用对象注入
这是最普遍的一种注入方式
<!--配置文件-->
<bean id="userDao" class="Dao.UserDaoImpl"/>
//通过userDao进行对象调用
public class UserManagerImpl implements UserManager {
private UserDao userDao;
@Override
public void addUser() {
userDao.addUser();
}
}
2、构造函数的注入
<bean id="userManager" class="manager.UserManagerImpl">
<constructor-arg ref="userDao"/>
</bean>
public class UserManagerImpl implements UserManager {
private UserDao userDao;
//构造函数的形式调用D层
public UserManagerImpl(UserDao userDao){
this.userDao=userDao;
}
@Override
public void addUser() {
userDao.addUser();
}
}
3、常用属性的注入
<!-- 常用属性的注入 -->
<bean id="bean" class="entity.Bean">
<property name="strValue" value="hellow_world"/>
<property name="intValue" value="123"/>
<property name="listValue">
<list>
<value>list1</value>
<value>list2</value>
</list>
</property>
<property name="setValue">
<set>
<value>set1</value>
<value>set2</value>
</set>
</property>
<property name="array">
<list>
<value>array1</value>
<value>array1</value>
</list>
</property>
<property name="mapValue">
<map>
<entry key="k1" value="v1"/>
<entry key="k2" value="v2"/>
</map>
</property>
</bean>
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Bean {
private String strValue;
private Integer intValue;
private List listValue;
private Set setValue;
private String[] array;
private Map mapValue;
public String getStrValue() {
return strValue;
}
public void setStrValue(String strValue) {
this.strValue = strValue;
}
public Integer getIntValue() {
return intValue;
}
public void setIntValue(Integer intValue) {
this.intValue = intValue;
}
public List getListValue() {
return listValue;
}
public void setListValue(List listValue) {
this.listValue = listValue;
}
public Set getSetValue() {
return setValue;
}
public void setSetValue(Set setValue) {
this.setValue = setValue;
}
public String[] getArray() {
return array;
}
public void setArray(String[] array) {
this.array = array;
}
public Map getMapValue() {
return mapValue;
}
public void setMapValue(Map mapValue) {
this.mapValue = mapValue;
}
}
小结:
以上是关于Spring中最基本的内容了也是最核心的内容。也是我们平常最常用的模块了。
了解这些,对了解后续spring中的事务和AOP的深入学习会有很大的帮助。