1、spring的概念

apache推出的java企业框架,提供了基于ioc的对象工厂、aop面向切面编程等功能及其他增强功能。

当前版本4.xxx,支持注解的配置。 springmvc。

2、控制反转(ioc):inversion of control。用来描述框架的重要特征

spring针对ioc的具体实现:依赖注入(DI): Dependency Injection

概念:(考点:如简述IOC)

我们需要的对象,不是由我们自己创建,而是由外部容器事先准备好,我们需要时才去拿。

比如说“在家里有个好老婆”。你需要任何生活中的东西基本都能直接给你,这样我们就能更专注于做自己要做的事,而不用为生活琐事耽误时间。

优点总结:专注业务,无需关注对象的创建。同时外部的容器允许对象具有可替代性,更加灵活。(后边这句的理解:根据接口提供多个实现,让用户选中合适自己的。)

举例:

A a = new A(???); //亲自去创建对象

使用ioc后==>

A a = factory.getBean("a")://从外部对象工厂去拿对象。

a.test();

spring框架提供了ioc的一种代码实现方式:di=依赖式注入(depency injection).

综合应用了java的xml\面向对象\反射技术\工厂模式。

编码:Superman演示依赖注入。

di概念:类持有一个抽象接口,在运行期由他人注入实例来决定运行的结果。

这里重点就是运行期,每次修改只需要改配置,不需要重新编译java文件,效率高。

另外构造时属性可以任意装配,灵活性大。如下例:组合飞行接口,实现在xml中随意配置。

class Superman

{

IFly tool; //持有抽象接口

main()

{

sm.setTool(new Plane()/new Balloon ()); //外部注入

}

}

3、spring的基础配置

a 对象的生命周期 考点

singleton--单例。【默认】

prototype--原型,每次获取都创建新的对象。

request--和request对象生命周期一致。获得响应后释放。

session--和session对象生命周期一致。setMaxInactiveInterval()//超过最大无活动时间就释放。或session.invalidate()。注意:误区:session不是关闭浏览器就结束生命周期,关闭浏览器只是jsessionid重建。服务器内存中的数据不会马上清理。

b 构造注入:本质上是通过反射调用有参构造函数

入参1的值入参2的值

...

设值注入:本质上是通过反射调用setXxx方法

c 对象工厂的延迟创建

lazy-init = true. 默认是false,在创建工厂时自动创建。

背影

java中springdi_java中spring入门相关推荐

  1. IDEA环境配置及Spring入门

    IDEA环境配置及Spring入门–以HelloWorld为例的简单介绍与开发步骤 前言:本文主要内容 一:IDEA环境配置 二:用传统Java编程方式写HelloWorld例子 传统java:不使用 ...

  2. ssha java接口_java – 从Spring在LDAP中设置SSHA密码

    我在解决如何使用SSHA哈希而不是纯文本在Apache DS LDAP中保存密码时遇到问题.据我所知,正确的方法应该是配置Apache DS以使用SSHA存储密码,然后在设置密码时只发送纯文本.但是, ...

  3. 在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南

    如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣.尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsear ...

  4. java 获取spring对象数组_解析Java中如何获取Spring中配置的bean

    解析Java中如何获取Spring中配置的bean Java中如何获取Spring中配置的bean?下面是由百分网小编为大家整理的解析Java中如何获取Spring中配置的bean,喜欢的可以收藏一下 ...

  5. spring 加载java类_在Spring中基于Java类进行配置的完整步骤

    在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...

  6. stopwatch_在Java中衡量执行时间– Spring StopWatch示例

    stopwatch 有两种方法可以通过使用System.currentTimeinMillis()或使用System.nanoTime() 来测量Java中经过的执行时间 . 这两个方法可用于测量 J ...

  7. 在Java中衡量执行时间– Spring StopWatch示例

    有两种方法可以通过使用System.currentTimeinMillis()或通过使用System.nanoTime() 来测量Java中经过的执行时间 . 这两个方法可用于测量 Java中两个方法 ...

  8. 为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE

    自从我担任技术决策职务以来已经过去了一年多,很高兴看到我仍然与之保持着完美的和谐. 几个月前,我在KaiWähner的一个不错的博客中写了一个有关JEE与Spring的答案. 如果观点没有不同,那么讨 ...

  9. 为什么我会在2012年的新企业Java项目中使用Java EE而不是Spring

    这个问题经常出现. 我的新项目也在2011年11月发布. 在这个新的Enterprise Java项目中,我将使用Java EE(JEE)代替Spring框架. 我知道:关于此主题的文章,博客和论坛讨 ...

最新文章

  1. html 手机a标签点不动,htmlunit单击javascript a标签不起作用
  2. hbase hyperbase 区别_大数据之HBase的几个常规性问题
  3. 使用WEB方式更改域用户帐户密码
  4. C++(17)--详解const
  5. 使用ABAP delete duplicate时遇到的问题
  6. Linux源码安装软件
  7. 【docker】宿主机安装kafka docker容器内clickhouse无法连接
  8. 快递小哥逆袭自传:用了6年时间做到了IT部门主管
  9. 一场面试过后—移动前端开发
  10. 算法题目打卡:Ques20201024
  11. 如何将arcgis中shape要素文件转为mapgis中点线面
  12. java倒序查询数据库_数据库 倒序查询
  13. 【洛谷】洛谷深基学习记录 第二章 顺序结构程序设计
  14. BS1063-基于大数据分析实现个性化音乐在线推荐平台,音乐资源分析平台
  15. 使用Linux训练LoRA模型
  16. NYOJ 495 少年 DXH
  17. Spring Data JPA-根据Repository接口关键字生成SQL
  18. 【dtoj#4219】地中海气候
  19. InDesign 教程:如何将颜色保存为色板?
  20. 平板电脑中的王者,不是只有苹果

热门文章

  1. maven 插件未找到_防止在多模块Maven中找到“未找到插件”
  2. 约束流–没有Drools规则语言的现代Java约束
  3. 我两个月来对Quarkus的了解
  4. Spring Boot应用程序的“本地服务”
  5. 使用JDK 8将收藏转换为地图
  6. jpa 异常捕获_JPA和CMT –为什么捕获持久性异常不够?
  7. 在React中处理事件
  8. 我的方法在这方面看起来很大吗?
  9. 如何将JBoss HR员工奖励项目放入云端
  10. javadoc 开源项目_在下一个项目中不使用JavaDoc的5大原因