Spring v3.0.2 Learning Note 1 - Introduction to Spring Framework
2010-10-25 10:59
387 查看
官网地址
http://www.springsource.org/
控制反转 Inversion of Control
public class PersonManager {
IPersonDao personDao = new PersonDao();
public void save(Person person) {
personDao.save(person);
}
}
类PersonManager依赖于类PersonDao,传统做法PersonDao是在应用内部创建和维护
。控制反转就是应用本身不负责倚赖对象的创建和维护
,而是将创建和维护交给外部容器负责,比如spring. 这样控制权就从应用本身转移到了外部容器,控制权的转移就是反转。
依赖注入 Dependency Injection
依赖注入指在运行期
间,由外部容器动态地
将依赖对象注入到组件中。
public class PersonManager {
IPersonDao personDao; // 是用接口定义依赖类
// 本例采用构造器的方式让容器将依赖对象注入到PersonManager类中
// 当然sping还提供了其他的注入方式,比如setter的方式
public PersonManager(IPersonDao personDao) {
this.personDao = personDao;
}
public void save(Person person) {
personDao.save(person);
}
}
Spring好处
降低组件之间耦合度,进而实现软件各层之间的解耦。
容器本身提供了众多服务,如事务管理,消息服务等。
提供了AOP技术,很容易实现如权限拦截、运行期监控等功能。
提供众多辅助类,简化开发,比如JdbcTemplate、HibernateTemplate等
对主流应用框架的支持,比如Hibernate、Struts等。
......
轻量级与重量级
划分一个应用为轻量级或重量级,主要看其使用了多少服务,使用的服务越多,容器要为Java对象做的工作越多,必然会影响部署复杂程度和运行效率。
对于spring容器,它提供了很多服务,但这些服务在默认状态下并不是打开的,需要应用需要某种服务,则需指明要使用该服务,如果使用的服务很少,比如
spring core服务,可认为是轻量级服务。如果应用使用了spring
提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范的所有服务,所以它属于重量级。
http://www.springsource.org/
控制反转 Inversion of Control
public class PersonManager {
IPersonDao personDao = new PersonDao();
public void save(Person person) {
personDao.save(person);
}
}
类PersonManager依赖于类PersonDao,传统做法PersonDao是在应用内部创建和维护
。控制反转就是应用本身不负责倚赖对象的创建和维护
,而是将创建和维护交给外部容器负责,比如spring. 这样控制权就从应用本身转移到了外部容器,控制权的转移就是反转。
依赖注入 Dependency Injection
依赖注入指在运行期
间,由外部容器动态地
将依赖对象注入到组件中。
public class PersonManager {
IPersonDao personDao; // 是用接口定义依赖类
// 本例采用构造器的方式让容器将依赖对象注入到PersonManager类中
// 当然sping还提供了其他的注入方式,比如setter的方式
public PersonManager(IPersonDao personDao) {
this.personDao = personDao;
}
public void save(Person person) {
personDao.save(person);
}
}
Spring好处
降低组件之间耦合度,进而实现软件各层之间的解耦。
容器本身提供了众多服务,如事务管理,消息服务等。
提供了AOP技术,很容易实现如权限拦截、运行期监控等功能。
提供众多辅助类,简化开发,比如JdbcTemplate、HibernateTemplate等
对主流应用框架的支持,比如Hibernate、Struts等。
......
轻量级与重量级
划分一个应用为轻量级或重量级,主要看其使用了多少服务,使用的服务越多,容器要为Java对象做的工作越多,必然会影响部署复杂程度和运行效率。
对于spring容器,它提供了很多服务,但这些服务在默认状态下并不是打开的,需要应用需要某种服务,则需指明要使用该服务,如果使用的服务很少,比如
spring core服务,可认为是轻量级服务。如果应用使用了spring
提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范的所有服务,所以它属于重量级。
相关文章推荐
- Introduction to the Spring Framework 2005年5月版 完整翻译
- Spring v3.0.2 Learning Note 14 - Send Email with Spring
- Spring Framework Ecosystem – Introduction to Spring Projects
- Introduction to the spring framework(Spring框架简介)
- org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file
- Idea 添加完项目以后自动生成的web.xml报错 'org.springframework.web.servlet.DispatcherServlet' is not assignable to
- Failed to introspect annotated methods on class org.springframework.boot.web.support.SpringBootServl
- Exception sending context initialized event to listener instance of class org.springframework.web.co
- [gtest][001] A quick introduction to the Google C++ Testing Framework
- An Introduction to Deep Learning (in Java)
- Introduction to Machine Learning
- [转]Introduction to Learning to Trade with Reinforcement Learning
- [翻译]斯坦福CS20SI:基于Tensorflow的深度学习研究课程笔记,Lecture note 1: Introduction to TensorFlow
- 【学习笔记】WEEK 1_Introduction to Deep Learning_Course Resources
- Exception sending context initialized event to listener instance of class org.springframework.web.ut
- org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably du
- Failed to read schema document 'http://www.springframework.org/schema/beans/spring-beans.3.0.xsd', b
- Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/sc
- In-depth introduction to machine learning in 15 hours of expert videos
- An introduction to machine learning with scikit-learn