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包,当然,如果你 ...
随机推荐
- java 三大框架 struct2部分 实现增删该查操作
1.三层架构 表现层:接收和处理请求. MVC模型:它是一个表现层模型. 业务层:处理程序业务需求. 持久层:对数据库操作的.2.MVC模型 M:Model ...
- UML关系实现、泛化,依赖、组合
图片via<大话设计模式> UML一目了然
- python全栈开发 * 32知识点汇总 * 180717
32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...
- angularjs使用BUG收集和解决办法
此文章涉及到时1.X的版本.请注意! 1.关于checkbox和bootstrap不能选中BUG 在使用angularjs的时候,有个比较明显的bug ng-disabled无效的情况 这里是一种情况 ...
- java_工厂模式
定义: 初学者总是把所有的代码写在一个类里面,这样是非常危险的,因为所有错误集中在一个类里了,而且代码一长,调试就很困难 所以参照工厂流水线,分车间分模块来写代码,在实际操作中也就是说将代码模块化,封 ...
- 线程同步-Barrier类
Barrier类:用于组织多个线程及时在某一个时刻碰面.并提供了一个回调函数,每次线程调用了SignalAndWait方法后该回调函数会被执行. 代码Demo: using System;using ...
- 好用的 over the wall教程
还在为翻 xxx墙苦恼吗,一分钟就能搞定的翻xxx墙教程 1.下载chrome扩展插件 Proxy SwitchyOmega,加入到谷歌的高级扩展程序当中,这个就不详细讲解了. 请戳 https:// ...
- Object.keys()的理解
Object.keys(obj) 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致. 例子如下: ①.简单的数组( ...
- VUE—打印(原生态网页打印)
//打印触发的方法 print(e){ let subOutputRankPrin = document.getElementById('printcode'); var options = { fo ...
- JavaScript 数组插入元素并排序
1.插入类排序 插入类排序的思想是:在一个已排好序的序列区内,对待排序的无序序列中的记录逐个进行处理,每一步都讲待排序的记录和已排好的序列中的记录进行比较,然后有序的插入到该序列中,直到所有待排序的记 ...
- Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)
- 无参构造函数创建(重点