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核心概念相关推荐

  1. 2021年大数据ELK(五):Elasticsearch中的核心概念

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...

  2. Sg.js框架核心概念

    Sg.js框架核心概念: 1)所有变量.方法.类对象全部都是从属于$g主树,由$g分支出很多$g.变量名.$g.方法.$g.对象id.$g.类: 2)获取控件内部属性必须使用公开的get方法获取,禁止 ...

  3. 学习 JavaScript (四)核心概念:操作符

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,前面三个上一篇文章已经讲解完了.后面三个内容超级多,这篇文章主要讲解的是操作符. 操作符 什么叫做操作符? 这是一种 ...

  4. Go modules基础精进,六大核心概念全解析(下)

    Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go Modules六大核心概念,包括了设计理念与兼容性原则等,掌握这些技术点对于管理和维护Go 模块有 ...

  5. Go modules基础精进,六大核心概念全解析(上)

    Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go Modules六大核心概念,包括了设计理念与兼容性原则等,掌握这些技术点对于管理和维护Go 模块有 ...

  6. Maven学习总结(四)——Maven核心概念

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...

  7. [k8s] 第一章 十分钟带你理解Kubernetes核心概念

    本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...

  8. cocos2d-x一些核心概念介绍

    cocos2d-x一些核心概念介绍 Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导 ...

  9. 浅谈java中的四个核心概念【转】

    2019独角兽企业重金招聘Python工程师标准>>> Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少.现 ...

最新文章

  1. 基于Mono跨平台移动应用开发框架发布Xamarin 3.0
  2. nginx:模块讲解
  3. “Survey of machine learning techniques for malware analysis ”
  4. 解决Windows环境下Git Bash 不能输入中文的问题
  5. java md2_java中加密的实现方法(MD5,MD2,SHA)
  6. vivo X21i的usb调试模式在哪里,打开vivo X21iusb调试模式的经验
  7. VC++ 6.0 快捷键大全
  8. 在玩图像分类和图像分割?来挑战基于 TensorFlow 的图像注解生成!
  9. POST 和GET传输的最大容量分别是多少?
  10. NodeJS必知基础知识(非巨详细)
  11. 姜小白的Python日记Day6 集合的用法
  12. 年末大盘点 2008十大最受欢迎的装机软件
  13. vc++加载透明png图片方法——GDI+和CImage两种
  14. linux管理账户是,Linux管理账户
  15. Linux中的configure命令作用,linux系统configure命令详解
  16. excel与access结合运用_当excel不够用时,如何利用Access进行数据分析?
  17. Linux 复制、粘贴快捷键
  18. 高效率使用日历提醒事项备忘录便签,完成日程规划
  19. 用Python 生成个性二维码
  20. 编译 puppy linux,Puppy Linux import gtk在Python中抛出错误

热门文章

  1. python连连看小游戏_python实现连连看游戏
  2. eslint 保存自动格式化_代码规范之理解ESLint、Prettier、EditorConfig
  3. Pycharm使用matplotlib绘图时无法显示中文问题
  4. 六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离
  5. LeetCode 308. 二维区域和检索 - 可变(前缀和)
  6. LeetCode 820. 单词的压缩编码(后缀树)
  7. LeetCode 980. 不同路径 III(DFS+回溯)
  8. LeetCode 1008. 先序遍历构造二叉树(已知先序,求二叉搜索树)
  9. POJ 1200 Crazy Search 查找有多少种不同的子串(hash)
  10. 上传图片自动加水印html,html5上传多个文件并添加水印 实例源码