十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
data access:数据访问
data integration:数据集成
transactions:事务
AOP:Aspect Oriented Programming 面向切面编程
Aspects:切面
Core container:核心容器
spring核心概念1.IoC(Inversion of Control)控制反转
使用对象时由主动new产生对象转换为由外部提供对象,这个过程中对象创建控制权由程序转给外部,这个思想叫控制反转。
2.spring将这个思想实现了
spring提供的IoC容器就是控制反转思想中的外部
IoC容器负责创建、初始化对象,而被创建或被管理的对象在IoC容器里被称为Bean
3.DI(dependency injection)依赖注入
在容器中bean和bean之间建立依赖关系的过程叫依赖注入
上述三点的目的在于解耦
IoC管理bean
给IoC容器内有依赖关系的bean绑定
org.springframework spring-context5.3.0
//获取ioc容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取bean
//BookDao bookDao = (BookDao) ctx.getBean("bookDao");
BookService bookService = (BookService) ctx.getBean("bookService");
//bookDao.save();
bookService.save();
至此一个简单的入门IoC实例就完成了,但是只是这种程度还是没有做到解耦这个目标的。
DI入门案例基于IoC管理bean
service中new的Dao对象不应该保存
给service提供所需要的Dao对象
private BookDao bookDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
bean的基本配置类型 | 描述 |
---|---|
名称 | name |
类型 | 属性 |
所属 | bean |
作用 | 给bean起别名,多个别名用,;以及空格隔开 |
bean无论是通过id还是name获取如果无法获取到会抛出异常
NoSucnBeanDefinitionException:No bean named ‘********’ available
类型 | 描述 |
---|---|
名称 | scope |
类型 | 属性 |
所属 | bean |
作用 | 定义bean的作用范围,其中singleton表示单例(默认)而prototype表示非单例 |
适合交给容器管理的bean
表现层对象
业务层对象
数据层对象
工具类
不适合交给容器管理的bean
封装实体的域对象
配置初始化和销毁
init-method
destory-method
如果想看到destory-method得先关闭容器否则看不到
close()暴力关闭容器
RegisterShutDownHook退出虚拟机之前关闭容器
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧