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包,当然,如果你 ...
随机推荐
- Linux命令 umask
umask: 文件预设权限 指定当前用户在创建文件或目录时的权限默认值. $ umask0002$ umask -Su=rwx,g=rwx,o=rx 创建文件时,预设没有x 权限,即只有rw 权限,最 ...
- yii js
页面url拼接以及页面跳转 var baseUrl = '<?php echo Yii::$app->request->baseUrl ?>';var url = baseUr ...
- Web开发——HTML基础(高级文本格式 列表/style)
文档资料参考: 参考:https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_fo ...
- linux之cp和scp的使用
cp 基本介绍 cp主要用于同一台服务器上,目录和文件的复制 表达式 cp [OPTIONS] SOURCE DEST --- 从源路径copy文件到目的路径 常用参数 -a same as -dpR ...
- 使用hashlib进行登录校验
注册登录和密码验证 用户注册时,文件中保存用户名,和密码的密文 登录时,密码与文件中的密文进行比较,如果相同就同意登录 import hashlib # 导入模块 def md5(username,p ...
- ext 的loadmask 与ajax的同步请求水火不容
由于ajax 的同步请求会有一段请求时间.有的短.有的长,对于短的我们还是能接受的,不过长的话就必须处理一下了, 就比如处于ext 4.2.0的框架下,需要一个遮掩的样式,框架是有自带的,loadma ...
- echart tootip使用技巧
1.关于混合折线图tooltip显示不同单位 formatter: function (params){ return params[0].name + '<br/>' + params ...
- Docker:Docker打包Web API成镜像并上传到Docker Hub(2)
Docker官方镜像:https://hub.docker.com/: 本文将把一个webapi制作成docker镜像 一.Docker命令 打开Docker Quickstart,有以下常用的命令 ...
- ubuntu常用软件命令
解压zip软件 unzip xxx.zip -d解压到指定目录 清理磁盘空间 sudo apt-get autoremove sudo apt-get clean sudo dpkg --list ...
- sessionid固定与session混淆的一些随想
以前一直觉得sessionid固定和session混淆就是两个一样的东西,后来发现两者还是要分开来的,主要因为利用场景的不同!!! sessionid固定和session混淆还是需要区分开来的一般情况 ...
- Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)
- 无参构造函数创建(重点