Spring框架之一(组件)
- Spring框架作用和优点
- Spring框架容器
- Spring框架IOC特性
- Spring框架AOP特性的使用
- Spring如何整合JDBC,Hibernate
- Spring如何整合mybasic
- Spring如何进行事物管理
- spring框架主要负责技术整合,该框架提供IOC和AOP机制,基于这些特性整合,可以降低
- 系统组件之间的耦合度,便于系统组件的维护,扩展和替换。
- Spring容器管理程序中的Action,DAO等组件,通过容器的IOC和AOP机制,利用这些特性可以
- 降低Action和DAO之间的关联,利用AOP进行事物管理等共通部分处理
- Spring框架的核心是提供了一个容器,该容器类型是BeanFactory或ApplicationContext
- 该容器具有以下功能
- 1、容器可以创建和销毁组件对象(等价于原来工厂的作用)
- 2、容器可以采用不同模式创建对象
- 3、容器具有IOC机制实现
- 4、容器具有AOP机制实现
- a、Spring的基本应用
- 1、如何讲一个Bean组件交给Spring容器
<bean id = "jdbcCostDAO" class = "com.shagou.JdbcCostDAO"
></bean>
public interface CostDAO {
public void save();
public void delete();
}
public class JdbcCostDAO implements CostDAO {
@Override
public void save() {
System.out.println("利用JDBC技术删除资费记录");
}
@Override
public void delete() {
System.out.println("利用JDBC技术添加资费记录");
}
public class CostDAOTest {
@Test
public void test() {
String conf = "/applicationContext.xml";
AbstractApplicationContext ac = new ClassPathXmlApplicationContext(conf);
CostDAO costDao = (CostDAO)ac.getBean("jdbcCostDAO");
costDao.save();
costDao.delete();
}
}
@Test
public void test1() {
AbstractApplicationContext ac = new ClassPathXmlApplicationContext("/applicationContext.xml");
CostDAO costDao1 = (CostDAO)ac.getBean("jdbcCostDAO");
CostDAO costDao2 = (CostDAO)ac.getBean("jdbcCostDAO");
System.out.println(costDao1 == costDao2);
}
<bean id = "jdbcCostDAO" scope = "singleton" class = "com.shagou.JdbcCostDAO"
></bean>
public JdbcCostDAO() {
System.out.println("--创建CostDAO对象--");
}
<bean id = "jdbcCostDAO" lazy-init = "true"
class = "com.shagou.JdbcCostDAO"
></bean>
public void myinit() {
System.out.println("--初始化DAO对象--");
}
public void mydestory() {
System.out.println("--释放DAO资源--");
}
@Test
public void test() {
String conf = "/applicationContext.xml";
AbstractApplicationContext ac = new ClassPathXmlApplicationContext(conf);
CostDAO costDao = (CostDAO)ac.getBean("jdbcCostDAO");
costDao.save();
costDao.delete();
ac.close();
}
<bean id = "jdbcCostDAO"
init-method = "myinit" destroy-method = "mydestory" class = "com.shagou.JdbcCostDAO"
></bean>