java中springdi_java中spring入门
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入门相关推荐
- IDEA环境配置及Spring入门
IDEA环境配置及Spring入门–以HelloWorld为例的简单介绍与开发步骤 前言:本文主要内容 一:IDEA环境配置 二:用传统Java编程方式写HelloWorld例子 传统java:不使用 ...
- ssha java接口_java – 从Spring在LDAP中设置SSHA密码
我在解决如何使用SSHA哈希而不是纯文本在Apache DS LDAP中保存密码时遇到问题.据我所知,正确的方法应该是配置Apache DS以使用SSHA存储密码,然后在设置密码时只发送纯文本.但是, ...
- 在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南
如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣.尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsear ...
- java 获取spring对象数组_解析Java中如何获取Spring中配置的bean
解析Java中如何获取Spring中配置的bean Java中如何获取Spring中配置的bean?下面是由百分网小编为大家整理的解析Java中如何获取Spring中配置的bean,喜欢的可以收藏一下 ...
- spring 加载java类_在Spring中基于Java类进行配置的完整步骤
在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...
- stopwatch_在Java中衡量执行时间– Spring StopWatch示例
stopwatch 有两种方法可以通过使用System.currentTimeinMillis()或使用System.nanoTime() 来测量Java中经过的执行时间 . 这两个方法可用于测量 J ...
- 在Java中衡量执行时间– Spring StopWatch示例
有两种方法可以通过使用System.currentTimeinMillis()或通过使用System.nanoTime() 来测量Java中经过的执行时间 . 这两个方法可用于测量 Java中两个方法 ...
- 为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE
自从我担任技术决策职务以来已经过去了一年多,很高兴看到我仍然与之保持着完美的和谐. 几个月前,我在KaiWähner的一个不错的博客中写了一个有关JEE与Spring的答案. 如果观点没有不同,那么讨 ...
- 为什么我会在2012年的新企业Java项目中使用Java EE而不是Spring
这个问题经常出现. 我的新项目也在2011年11月发布. 在这个新的Enterprise Java项目中,我将使用Java EE(JEE)代替Spring框架. 我知道:关于此主题的文章,博客和论坛讨 ...
最新文章
- html 手机a标签点不动,htmlunit单击javascript a标签不起作用
- hbase hyperbase 区别_大数据之HBase的几个常规性问题
- 使用WEB方式更改域用户帐户密码
- C++(17)--详解const
- 使用ABAP delete duplicate时遇到的问题
- Linux源码安装软件
- 【docker】宿主机安装kafka docker容器内clickhouse无法连接
- 快递小哥逆袭自传:用了6年时间做到了IT部门主管
- 一场面试过后—移动前端开发
- 算法题目打卡:Ques20201024
- 如何将arcgis中shape要素文件转为mapgis中点线面
- java倒序查询数据库_数据库 倒序查询
- 【洛谷】洛谷深基学习记录 第二章 顺序结构程序设计
- BS1063-基于大数据分析实现个性化音乐在线推荐平台,音乐资源分析平台
- 使用Linux训练LoRA模型
- NYOJ 495 少年 DXH
- Spring Data JPA-根据Repository接口关键字生成SQL
- 【dtoj#4219】地中海气候
- InDesign 教程:如何将颜色保存为色板?
- 平板电脑中的王者,不是只有苹果