spring学习笔记 -- day02 spring基础、IOC控制反转
一:srping的介绍
1、spring的体系结构
2、spring资源
a、spring-framework-4.2.4.RELEASE:Spring Framework的官方发行包
b、spring-framework-3.0.2.RELEASE-dependencies:依赖的第三方jar包
二:如何搭建spring的核心开发环境
1、导入spring核心开发的jar包
位置: spring-framework-3.2.0.RELEASE\libs
jar包:
2、导入核心依赖的jar包(日志输出),可以使用 commons-logging或Log4J
a、jar包位置:
spring-framework-3.0.2.RELEASE-dependencies\org.apache.commons\com.springsource.org.apache.commons.logging\1.1.1
b、jar包
3.配置spring核心配置文件
三:spring中的IOC(控制反转)
1、控制反转概念
之前我们获取资源的方式:我们在获取对象时,都是采用new的方式。是主动的。
控制反转之后获取资源的方式:我们获取对象时,同时跟工厂要,有工厂为我们查找或者创建对象。是被动的。
2、入门程序
a、创建java工程,导入jar包
c、编写配置文件
(1)、导入约束
(2)、编写配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 导入schema约束:
约束的位置:/docs/spring-framework-reference/html/xsd-configuration.html
-->
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 把资源交给spring来管理 --><bean id="customerService" class="cn.itcast.service.impl.CustomerServiceImpl"></bean><bean id="customerDao" class="cn.itcast.dao.impl.CustomerDaoImpl"></bean>
</beans>
d、编写servcie层和dao层
package cn.itcast.dao;/*** 客户的持久层接口* @author zhy**/
public interface ICustomerDao {/*** 保存客户*/void saveCustomer();}
package cn.itcast.dao.impl;import cn.itcast.dao.ICustomerDao;
/*** 客户的持久层实现类* @author zhy**/
public class CustomerDaoImpl implements ICustomerDao {@Overridepublic void saveCustomer() {System.out.println("保存了客户....");}}
package cn.itcast.service;/*** 客户的业务层接口* @author zhy**/
public interface ICustomerService {/*** 保存客户*/void saveCustomer();
}
package cn.itcast.service.impl;import cn.itcast.dao.ICustomerDao;
import cn.itcast.service.ICustomerService;
/*** 客户的业务层实现类* @author zhy**/
public class CustomerServiceImpl implements ICustomerService {private ICustomerDao customerDao = null ;/*** 默认无参构造函数* 当此方法一执行,就表示对象已经创建了*/ public CustomerServiceImpl() {System.out.println("客户的业务层实现类已经创建了");}@Overridepublic void saveCustomer() {customerDao.saveCustomer();}}
e、spring容器的初始化和资源的获取
package cn.itcast.web;public class Client {@SuppressWarnings("all")public static void main(String[] args) {// 1.获取到Spring的容器,参数是spring配置文件带后缀的名称ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");//如果配置文件在包中,就按照如下方式写 //ApplicationContext ac = newClassPathXmlApplicationContext("cn/itcast/config/bean.xml");// 2.根据bean的唯一标识获取对象ICustomerService customerService = (ICustomerService) ac.getBean("customerService");System.out.println(customerService);ICustomerDao customerDao = (ICustomerDao) ac.getBean("customerDao");System.out.println(customerDao);customerService.saveCustomer();}
}
四:springAPI的体系结构
1、体系结构图
2、分析
(1)、两个实现类
(2)、BeanFactory和ApplicationContext的区别
BeanFactory
spring学习笔记 -- day02 spring基础、IOC控制反转相关推荐
- spring学习笔记(spring概述和IOC)
spring5 1.spring的概述 1.1.spring是什么 Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的. Spring 的 ...
- Spring学习笔记 之 Spring<全>
开始学习Spring全家桶 文章目录 1. IoC 定义 为什么叫控制反转? 实现 IoC 容器创建 bean 的两种⽅式 IoC DI 特殊字符的处理 Spring 中的bean创建类型 -- sc ...
- Spring学习笔记之Spring Web Flow
Spring Web Flow 是Spring MVC 的扩展,它支持开发基于流程的应用程序.它将流程的定义与实现流程行为的类和视图分离开来. 1.配置Web Flow 在Spring MVC上下文定 ...
- Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)
http://blog.csdn.net/qq598535550/article/details/51703190 二.Spring整合mybatis其实是在mybatis的基础上实现Spring框架 ...
- 学习笔记Day02——Linux基础2——系统安装及基础知识
今天的学习总结:简单介绍一下Linux,安装系统,然后介绍一点基础知识 安装Linux需要用到虚拟机,在这里我提供VMware12的安装包 链接:https://pan.baidu.com/s/1Sh ...
- Spring框架学习笔记(1) ---[spring框架概念 , 初步上手使用Spring , 控制反转 依赖注入初步理解 ]
spring官网 -->spring官网 spring5.3.12–>spring-framework 在线文档 --> Spring 5.3.12 文章目录 1.Spring概论 ...
- JavaEE——Spring学习笔记01【Ioc开发的模式】
JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...
- Spring IOC(控制反转)思想笔记
Spring IOC(控制反转)思想笔记 IOC控制反转基本理念就是将程序控制权从程序员手中交给用户自定义,从而避免了因为用户一个小需求的变化使得程序员需要改动大量代码. 在这里插入图片描述 案例 如 ...
- Spring IOC(控制反转)思想笔记
Spring IOC(控制反转)思想笔记 IOC控制反转基本理念就是将程序控制权从程序员手中交给用户自定义,从而避免了因为用户一个小需求的变化使得程序员需要改动大量代码. 案例 如果按照之前javaw ...
最新文章
- android内存泄漏原因分析,Android Studio3.6的内存泄漏检测功能 VS LeakCanary
- 有虚拟服务器的无线路由,无线路由,虚拟服务器,。怎么办?
- Python排序算法总结
- 推荐]招商就象谈恋爱
- 带你了解APP开发的具体流程
- 《SpringMVC视频教程》(p2~p3)
- 数据库导出换行mysql_数据库导出excel 换行
- sqlmap挂马命令
- android app 用什么语言开发的?
- 计划的主体部分应有哪些内容_知道智慧树应用写作技能与规范网课答案
- 高校社团管理系统java_高校社团管理系统设计及实现.doc
- 浅谈GFS之---读写文件流程
- 从冬奥看中国科技(四):“一鱼多吃”的5G
- linux下下载各种软件合集!!!
- Linux配置nginx缓存(expires)功能
- 为什么微软员工可以不奋斗?
- GitChat · 架构 | 为什么微服务实施那么难?如何高效推进微服务架构演进
- 序列最小最优化算法(SMO算法)
- 关于数据库主键和外键,索引
- 国网信通产业集团信通研究院成功参与CCSA关于5G技术在电力行业应用的相关标准立项