Spring

介绍:Spring 框架是一个Java平台,它为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此您可以专注于应用程序的开发。

Spring可以让您从“plain old Java objects”(POJO)中构建应用程序和通过非侵入性的POJO实现企业应用服务。此功能适用于Java SE的编程模型,全部的或部分的适应Java EE模型。

Ioc(依赖注入)

1、 What:以前创建对象需要自己主动去new,比较费劲,ioc模式提供ioc service provider,解决了被注入对象依赖被依赖对象问题,减低了耦合。

2、 依赖注入方式

a) 构造器注入

b) Setter注入

c) 接口注入,接口注入侵入性强,使用比较少

Ioc两个主要容器

Beanfactory容器(接口)

//The root interface for accessing a Spring bean container.
//访问Spring bean容器的根接口。
public interface BeanFactory {
String FACTORY_BEAN_PREFIX = "&"; //返回指定bean的实例,该实例可以是共享的或独立的。
Object getBean(String var1) throws BeansException; //返回指定bean的实例,该实例可以是共享的或独立的。
<T> T getBean(String var1, Class<T> var2) throws BeansException; //返回指定bean的实例,该实例可以是共享的或独立的。
<T> T getBean(Class<T> var1) throws BeansException; //返回指定bean的实例,该实例可以是共享的或独立的。
Object getBean(String var1, Object... var2) throws BeansException; //返回指定bean的实例,该实例可以是共享的或独立的。
<T> T getBean(Class<T> var1, Object... var2) throws BeansException; //此bean工厂是否包含具有给定名称的bean定义或外部注册的singleton 实例?
boolean containsBean(String var1); //这个bean是一个共享的单例吗?
boolean isSingleton(String var1) throws NoSuchBeanDefinitionException; //这ben是原型吗?也就是说,{@link #getBean}总会返回独立实例吗?
boolean isPrototype(String var1) throws NoSuchBeanDefinitionException; //检查具有给定名称的bean是否与指定的类型匹配。
boolean isTypeMatch(String var1, ResolvableType var2) throws NoSuchBeanDefinitionException; //检查具有给定名称的bean是否与指定的类型匹配。
boolean isTypeMatch(String var1, Class<?> var2) throws NoSuchBeanDefinitionException; //确定具有给定名称的bean的类型。更具体地说,*确定{@link #getBean}将为给定名称返回的对象类型
Class<?> getType(String var1) throws NoSuchBeanDefinitionException; //返回给定bean名称的别名(如果有)。 *在{@link #getBean}调用中使用时,所有这些别名都指向同一个bean。
String[] getAliases(String var1);
}

Applicationcontext容器(接口)

public interface ApplicationContext extends EnvironmentCapable,
ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver { //返回此应用程序上下文的唯一ID。
String getId(); //返回此上下文所属的已部署应用程序的名称。
String getApplicationName(); //返回此上下文的友好名称
String getDisplayName(); //首次加载此上下文时返回时间戳。
long getStartupDate(); //返回父上下文,如果没有父,则返回{@code null},这是上下文层次结构的根。
ApplicationContext getParent(); //为此上下文公开AutowireCapableBeanFactory功能。
AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;
}



由继承关系可以看出Applicationcontext容器功能强于Beanfactory容器

参考:

http://ifeve.com/overview-getting-started-with-spring/

解锁Spring框架姿势1的更多相关文章

  1. Spring框架概述

    Spring是最流行的Java企业级应用开发框架,全球数以百万的开发者在使用Spring框架创建高性能.易测试.可重用的代码. Spring框架的核心特性可以应用于任何Java应用,但扩展的JavaE ...

  2. 初识Spring框架实现IOC和DI(依赖注入)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...

  3. Spring 框架的架包分析、功能作用、优点,及jar架包简介

    Spring 框架的架包详解    Spring的作用     Spring的优势  由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...

  4. 最新 Eclipse IDE下的Spring框架配置及简单实例

    前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...

  5. spring框架学习(三)

    一.Spring自动组件扫描 Spring 提供组件扫描(component scanning)功能.它能从指定的classpath里自动扫描.侦测和实例化具有特定注解的组件. 基本的注解是@Comp ...

  6. Spring框架学习(一)

    一. spring概述 Spring 框架是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式,如图 1 所示. 图 1 ...

  7. Spring 系列: Spring 框架简介 -7个部分

    Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...

  8. 使用 Spring Boot 快速构建 Spring 框架应用--转

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/ Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2 ...

  9. 【Spring】浅析Spring框架的搭建

    c目录结构: // contents structure [-] Spring是什么 搭建Spring框架 简单Demo 1,建立User类 2,建立Test类 3,建立ApplicationCont ...

随机推荐

  1. jmeter处理json(关联)

    例:用户需要登录成功后才可进行充值,进行充值操作时需要获取登录成功返回的sign值,在jmeter中可以通过关联的方式进行处理. jmeter中json path插件的使用方法:http://www. ...

  2. bzoj 4283 魔法少女伊莉雅

    题目大意 给定一个 $n$ 个点 $m$ 条边的带正权无向图.要求找一条路径满足: 它是一条简单路径 它是一条严格次短路 对于任何一条可能存在于最短路上的边,不能包含它的反向边. 不存在这条路径输出 ...

  3. Nodejs连接数据库为何使用连接池

    问题一.nodejs既然是单线程运行,在连接数据库时为何要使用连接池呢? 问题二,redis服务端是单线程运行的,使用连接池到redis,服务端还是串行处理,有什么意义么? 这两个问题都涉及到单线程与 ...

  4. 7.pytest中的 plugin

    一直想弄弄清这里的东西,一直各种因素delay,今天务必要搞搞清 一.先从官方文档上尝试去解读下什么是plugin和hook 网上有现成的对你适用的插件时候,我们可以直接pip安装,拿来使用即可:但是 ...

  5. css样式之标签的查找

    css的组成部分:选择器和声明 css的注释: /*这是注释*/ <!DOCTYPE html> <html lang="zh-CN"> <head& ...

  6. python脚本中appium的自启动自关闭

    前提:已安装appium命令行版本 将appium的启动及其关闭直接写在脚本中,运行起来会方便很多 创建startAppiumServer.bat 和 stopAppiumServer.bat文件,然 ...

  7. 包子凑数(dp思想)

    问题描述: 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼都有非常多笼,可以认为是无限笼.每当有顾客想买X个包子,卖包子的大叔就会迅速选 ...

  8. git 换行符替换

    https://help.github.com/en/articles/dealing-with-line-endings rm .git/index git reset https://github ...

  9. my.等级限制

    1.20190405 “春之恋曲 4月5日双平台新服开服公告”,20190426  上去新建了一个号  发现等级限制是 66级(2天后开启新等级) 20190412 “胭脂雪 4月12日双平台新服开服 ...

  10. iview 怎样屏蔽掉账户框自动显示账户名和密码(root,***)

    用iview框架做出的登录页面,账户名和密码显示框,会自动有占位信息(root,****) 后来解决问题发现,只要在真正的输入框下面添加这样的一行隐藏的代码,占位信息会自动填充到隐藏的input框内, ...