Sqring核心概念
Spring 是大规模企业级框架,用户数量多,数据规模大,功能众多,业务复杂,
性能和安全要求高 灵活多变
Spring框架是轻量级的框架,javaEE的春天,当前主流的框架,一站式的企业应用开发框架
Spring 目标:是使现有的技术更加易用,推进代码的最佳实践
Spring 内容:IOC容器 控制反转。
Aop实现 面向切面编程
数据访问支持 1 简化jdbc/orm框架
2 声明式事务
1. Spring容器的主要目的:降低业务逻辑层和其他层的耦合度(IOC)
2. Spring容器 用来创建和管理(管理对象和对象之间的关系)程序中的所有对象的实例
3. 非侵入式框架轻量级开源框架
侵入式余姚我们显示使用框架中的API才能实现某种功能。--框架强行的将功能推送给我们。
非侵入式不需要改变我们之间的编码。--我们资源从框架中获取想要的功能。
Spring的核心 ( IOC ,AOP )
IOC(Inversin Of Control) 控制反转
在没有使用框架之前我们都是在Service 层创建dao的实例对象!控制权在service !
现在我们使用了Spring框架,创建dao的实例对象---使用Spring容器 控制权在 Spring容器!
这种控制权从程序的代码中转到Spring容器的行为就称为 IOC 控制反转
studentDao dao=null;
public void setDao(StudentDao dao){
this.dao=dao;
}
Spring 容器给我们创建了对象的实例,然后通过setxxx(); 把对象的实例给我们需要的地方,这个过程称为
DI依赖注入 (Dependency Injection)
下面我们看一个Spring的小例子:
public class HelloSpring {private String who;//定义变量who 他的值通过Spring框架进行注入public HelloSpring() {}public void print(){System.out.println("Hello"+this.getWho()+"okokokok!"); }public HelloSpring(String who) {this.who = who;}@Overridepublic String toString() {return "HelloSpring{" +"who='" + who + '\'' +'}';}public String getWho() {return who;}public void setWho(String who) {this.who = who;} }
applicationContext.xml Spring容器 <!--bean 对象声明Spring创建的对象实例--> 通过Spring框架进行注入
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="HelloSpring" class="cn.bean.HelloSpring"> <!-- 未声明的实例对象的类 类的位置和类名--><property name="who" value="Spring hhahhahah"></property> <!-- name 被指定赋值的属性名set 后的 。value 赋值的内容 --></bean><!--bean 对象声明Spring创建的对象实例-->
public class SpringOneTest {@Testpublic void SpringHello(){ApplicationContext context=new ClassPathXmlApplicationContext("ApplicationContext.xml");//Spring 提供的接口 实现类 配置文件路径HelloSpring helloSpring = (HelloSpring)context.getBean("HelloSpring");//id helloSpring.print();} }
运行结果
转载于:https://www.cnblogs.com/cuixiaomeng/p/7676928.html
Sqring核心概念相关推荐
- 2021年大数据ELK(五):Elasticsearch中的核心概念
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...
- Sg.js框架核心概念
Sg.js框架核心概念: 1)所有变量.方法.类对象全部都是从属于$g主树,由$g分支出很多$g.变量名.$g.方法.$g.对象id.$g.类: 2)获取控件内部属性必须使用公开的get方法获取,禁止 ...
- 学习 JavaScript (四)核心概念:操作符
JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,前面三个上一篇文章已经讲解完了.后面三个内容超级多,这篇文章主要讲解的是操作符. 操作符 什么叫做操作符? 这是一种 ...
- Go modules基础精进,六大核心概念全解析(下)
Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go Modules六大核心概念,包括了设计理念与兼容性原则等,掌握这些技术点对于管理和维护Go 模块有 ...
- Go modules基础精进,六大核心概念全解析(上)
Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go Modules六大核心概念,包括了设计理念与兼容性原则等,掌握这些技术点对于管理和维护Go 模块有 ...
- Maven学习总结(四)——Maven核心概念
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...
- [k8s] 第一章 十分钟带你理解Kubernetes核心概念
本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...
- cocos2d-x一些核心概念介绍
cocos2d-x一些核心概念介绍 Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导 ...
- 浅谈java中的四个核心概念【转】
2019独角兽企业重金招聘Python工程师标准>>> Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少.现 ...
最新文章
- 基于Mono跨平台移动应用开发框架发布Xamarin 3.0
- nginx:模块讲解
- “Survey of machine learning techniques for malware analysis ”
- 解决Windows环境下Git Bash 不能输入中文的问题
- java md2_java中加密的实现方法(MD5,MD2,SHA)
- vivo X21i的usb调试模式在哪里,打开vivo X21iusb调试模式的经验
- VC++ 6.0 快捷键大全
- 在玩图像分类和图像分割?来挑战基于 TensorFlow 的图像注解生成!
- POST 和GET传输的最大容量分别是多少?
- NodeJS必知基础知识(非巨详细)
- 姜小白的Python日记Day6 集合的用法
- 年末大盘点 2008十大最受欢迎的装机软件
- vc++加载透明png图片方法——GDI+和CImage两种
- linux管理账户是,Linux管理账户
- Linux中的configure命令作用,linux系统configure命令详解
- excel与access结合运用_当excel不够用时,如何利用Access进行数据分析?
- Linux 复制、粘贴快捷键
- 高效率使用日历提醒事项备忘录便签,完成日程规划
- 用Python 生成个性二维码
- 编译 puppy linux,Puppy Linux import gtk在Python中抛出错误
热门文章
- python连连看小游戏_python实现连连看游戏
- eslint 保存自动格式化_代码规范之理解ESLint、Prettier、EditorConfig
- Pycharm使用matplotlib绘图时无法显示中文问题
- 六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离
- LeetCode 308. 二维区域和检索 - 可变(前缀和)
- LeetCode 820. 单词的压缩编码(后缀树)
- LeetCode 980. 不同路径 III(DFS+回溯)
- LeetCode 1008. 先序遍历构造二叉树(已知先序,求二叉搜索树)
- POJ 1200 Crazy Search 查找有多少种不同的子串(hash)
- 上传图片自动加水印html,html5上传多个文件并添加水印 实例源码