Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)
Spring概念

- spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用)
spring核心主要两部分
- aop:面向切面编程,扩展功能不是修改源代码来实现;
- ioc:控制反转,比如:有一个类,在类中有个方法(非静态的方法),要调用类中的这个方法,则需要创建类的对象,使用对象调用方法。创建类对象的过程,需要new出来对象;而ioc则是将对象的创建不是通过new方式实现,而是交给spring配置来创建对象(即,将对象的创建交给spring来管理);
spring是一站式框架
- spring在javaee三层结构中,每一层都提供不同的解决技术
- web层:springMVC
- service层:spring的ioc
- dao层:spring的jdbcTemplate
spring版本
- hibernate5.x
- spring4.x
Spring入门
Spring的ioc操作
- 即:把对象的创建交给spring进行管理
- ioc两种操作方式:
- ioc的配置文件方式;
- ioc的注解方式;
IOC底层原理
- ioc底层原理使用的技术
- xml配置文件
- dome4j解析xml
- 工厂设计模式
- 反射
- 画图分析ioc实现原理

IOC入门案例
- 步骤:
- 导入jar包;
- 解压下载的spring-framework-4.2.4.RELEASE.zip文件,jar包特点:都有三个jar包(基本jar、文档jar、源码jar);

- 做spring基本功能,只需导入四个核心点jar包即可(Beans、core、Context、SpEL);

- 导入支持日志输出的jar包-logging、log4j(因为spring本身没有提供这种jar包);

- 解压下载的spring-framework-4.2.4.RELEASE.zip文件,jar包特点:都有三个jar包(基本jar、文档jar、源码jar);
- 创建类,在类中创建方法;
package cn.cbb.ioc; public class User { public void add() {
System.out.println("add ...");
} public static void main(String[] args) {
/**
* 调用类中的方法,原始做法是创建类对象,用对象调用方法;而现在则不再这样做了,
* 而是将对象的创建过程交给spring来配置实现,但是底层用的肯定是反射,我们不需
* 要写反射代码,由spring代我们做此操作
*/
User user = new User();
user.add();
}
} - 创建spring配置文件,配置创建类;
- spring核心配置文件名称和位置不是固定的,建议放在src下面,官方建议applicationContext.xml
- 引入schema约束

- 配置对象创建,配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<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"> <!-- ioc入门,配置对象的创建 -->
<bean id="user" class="cn.cbb.ioc.User"></bean>
</beans>
- 写代码测试对象创建:
package cn.cbb.ioc; import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class IOCTest { @Test
public void IOCTest() {
//1、加载spring配置文件,根据配置创建对象
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
//2、得到配置创建的对象
User user = (User) context.getBean("user");
System.out.println(user);
user.add();
}
}
- 导入jar包;
配置文件无提示问题
Spring引入schema约束,把约束文件引入到eclipse中,以便配置文件编写提示:
spring的bean管理(xml配置文件)
bean实例化三种方式
- bean实例化,即:在spring里面通过配置文件创建对象;
- bean实例化的三种方式实现(掌握一种,其他两种知道即可):
- 无参构造函数创建(重点
Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)的更多相关文章
- Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)
在Spring基础 - Spring简单例子引入Spring的核心中向你展示了AOP的基础含义,同时以此发散了一些AOP相关知识点; 本节将在此基础上进一步解读AOP的含义以及AOP的使用方式.@pd ...
- Spring 框架的概述以及Spring中基于XML的IOC配置
Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器. ...
- Spring框架系列(3) - 深入浅出Spring核心之控制反转(IOC)
在Spring基础 - Spring简单例子引入Spring的核心中向你展示了IoC的基础含义,同时以此发散了一些IoC相关知识点; 本节将在此基础上进一步解读IOC的含义以及IOC的使用方式.@pd ...
- 【Spring】Spring框架之Struts2和Spring的优点
Java Web开发使用Structs2和Spring框架的好处 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术 ...
- Spring框架学习之--搭建spring框架
此文介绍搭建一个最最简单的spring框架的步骤 一.创建一个maven项目 二.在pom.xml文件中添加依赖导入spring框架运行需要的相关jar包 注意:在引入jar包之后会出现org.jun ...
- Java开发工程师(Web方向) - 04.Spring框架 - 第1章.Spring概述
第1章.Spring概述 Spring概述 The Spring Framework is a lightweight solution and a potential one-stop-shop f ...
- 学习Spring框架系列(一):通过Demo阐述IoC和DI的优势所在
Spring框架最核心东西便是大名鼎鼎的IoC容器,主要通过DI技术实现.下面我通过Demo的演变过程,对比学习耦合性代码,以及解耦和的过程,并深入理解面向接口编程的真正内涵. 这个例子包括如下几个类 ...
- 手写Spring框架,加深对Spring工作机制的理解!
在我们的日常工作中,经常会用到Spring.Spring Boot.Spring Cloud.Struts.Mybatis.Hibernate等开源框架,有了这些框架的诞生,平时的开发工作量也是变得越 ...
- Spring框架第一篇之Spring的第一个程序
一.下载Spring的jar包 通过http://repo.spring.io/release/org/springframework/spring/地址下载最新的Spring的zip包,当然,如果你 ...
随机推荐
- Brocade SAN交换机常用命令
Brocade SAN交换机常用命令 使用电脑连接Brocade SAN交换机常用命令 使用电脑连接管理网口,默认IP地址为:10.77.77.77,掩码:255.255.255.0 默认用户名:ad ...
- java_BufferedReader的一个应用
应用来自于我做网页的时候,来读出一个txt文档,由于输出到页面的时候总是没有排版,但是原文件中有换行符,之前是使用的byte数组传输,但是这样无法换行 就使用了BufferedReader,因为它是一 ...
- 可视化&地图__公司收集
原文地址:https://github.com/zhongcaiwei/Data-visualization-technology-sharing 一.数据可视化企业(部分) 数字冰雹 光启元-腾讯 ...
- python摸爬滚打之day022----模块(序列化操作)
1.pickle 可以将我们python中的任意数据类型转化成bytes并写入到文件中. 同样也可以把文件中写好的bytes转换回我们python的数据. pickle可以直接序列化对象. clas ...
- MySQL 误操作后数据恢复(update,delete忘加where条件)
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...
- python终端打印带颜色的print
原理 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示 ...
- python框架之Django(16)-接入Redis
准备 安装Redis 参考 Ubuntu 中 Redis 的安装与使用. 在python中使用Redis 参考 python 中使用 Redis . 安装依赖包 在 Django 中接入 Redis ...
- Python数据分析与挖掘常用模块
python在数据科学方面需要用到的库: a.Numpy:科学计算库.提供矩阵运算的库. b.Pandas:数据分析处理库 c.scipy:数值计算库.提供数值积分和常微分方程组求解算法.提供了一个非 ...
- VMWare安装CentOS 6.5图解
1.本安装示例所使用的虚拟机:vmware workstation 12 2.从VMWare创建虚拟机开始,打开VMWare. 操作系统:CentOS 6.5 64位 IP地址:192.168.1.2 ...
- 用python写多线程
import threading #首先导入threading 模块,这是使用多线程的前提 from time import ctime,sleep def music(func): ): print ...
- Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)
- 无参构造函数创建(重点