1.spring框架概述和spring中基于xml的IOC配置

简介

Spring是分层的 Java SE/EE应用 full-stack 轻量级开
源框架,以 IoC(Inverse Of Control: 反转控制)和
 AOP(Aspect Oriented Programming:面向切面编
程)为内核,提供了展现层 Spring MVC 和持久层 Sp
ring JDBC 以及业务层事务管理等众多的企业级应用技
术,还能整合开源世界众多 著名的第三方框架和类库

优点

1.方便解耦,简化开发  通过 Spring提供的 IoC容器,可
以将对象间的依赖关系交由 Spring进行控制,避免硬
编码所造 成的过度程序耦合。
2.AOP编程的支持  通过 Spring的 AOP 功能,方便进
行面向切面的编程
3.声明式事务的支持  可以将我们从单调烦闷的事务管
理代码中解脱出来,通过声明式方式灵活的进行事务的
管理, 提高开发效率和质量
4.方便程序的测试  可以用非容器依赖的编程方式进行
几乎所有的测试工作,测试不再是昂贵的操作,而是随
手可 做的事情。 
5.方便集成各种优秀框架  Spring可以降低各种框架的
使用难度,提供了对各种优秀框架(Struts、Hibernat
e、Hessian、Quartz 等)的直接支持。

spring核心容器的创建

--1.ApplicationContext path = new ClassPathXmlApplicationContext("bean.xml");
//(1.1 ApplicationContext:对象在这生成 立即加载)

--2.Resource resource = new ClassPathResource("bean.xml");
XmlBeanFactory factory = new XmlBeanFactory(resource);
//BeanFactory--核心容器的对象在这生成(调用时生成延迟加载)

在web项目中,applicationContext容器的实例化交由web服务器完成.

一般通过ContextLoaderListener实现,需要在web.xml中进行配置

spring 的bean

bean 标签

作用: 用于配置对象让 spring 来创建的。
默认情况下它调用的是类中的无参构造函数。
如果没有无参构造函数则不能创建成功。
属性: id:给对象在容器中提供一个唯一标识。用于获取对象。
class:指定类的全限定类名。用于反射创建对象。默认情况下调用无参构造函数。
scope:指定对象的作用范围。
* singleton :默认值,单例的.
* prototype :多例的.
* request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.
* session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.
* global session :WEB 项目中,应用在 Portlet 环境.如果没有 Portlet 环境那么 globalSession 相当于 session.(多个服务器共享session)

bean的实例化

1.构造器实例化
2.静态工厂实例化
3.实例化工厂作用域:
1.单例 bean在spring容器中只有一个实例
2.多例 每次获取bean 都会创建新的bean的实例

依赖注入

将spring容器里的某个bean
装配到 另一类中

1.使用构造函数提供

constructor-arg

2.使用set方法提供

property标签

3.使用注解提供

1.用于创建对象 相当于:<bean id="" class="">
* 作用和xml配置文件中编写一个bean标签实现的功能一样
*
1.1 @ Component
属性: value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。
-------一下三个注解(和Component作用一样)------------
1.2 @ Controller(和Component作用一样)
一般用于表现层
1.3@Service(和Component作用一样)
一般用在业务层
1.4@Repository(和Component作用一样)
一般用于持久层

* 2.用于注入数据的
* 作用和xml配置文件中的bean标签中写一个<property>作用一样
* 2.1@Autowired
* 自动按照类型注入。当使用注解注入属性时,set方法可以省略。它只能注入其他 bean 类型。
* 当有多个 类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到了也可以注入成功。找不到 就报错。
* 2.2Value
* 注入基本数据类型和 String 类型数据的 value:用于指定值
* 2.3@Resource
* 作用: 直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型。
* 属性: name:指定 bean 的 id
* 3.用于改变作用范围的(相当于:<bean id="" class="" scope=""> )
* 作用集合在bean标签中使用scope属性实现的功能一致
* 3.1@Scope
* 作用: 指定 bean 的作用范围。 属性: value:指定范围的值。 
* 取值:singleton prototype request session globalsession 

* 4.和生命周期相关的
* 作用和bean标签中使用scope属性实现的功能一样

区分一下@Autowired和@Resource两个注解的区别:

(1)、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
(2)、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了'

基于注解ioc

1.扫描包<context:component-scan>
2.穿件对象交给容器 @Component  相当于:<bean id="" class="">  
3.依赖注入@Autowired 相当于:<property name="" ref="">   
4.@Value 注入基本数据类型和 String 类型数据的

spring复习(一)框架概述和spring中基于xml的IOC配置的更多相关文章

  1. Spring 框架的概述以及Spring中基于XML的IOC配置

    Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器. ...

  2. 03-Spring基于xml的IOC配置--spring的依赖注入

    1.概念 依赖注入:Dependency Injection(简称DI注入).它是 spring 框架核心 ioc 的具体实现. 简单理解:可以在一个类中不通过new的方式依赖其它对象.目的是为了解耦 ...

  3. Spring中AOP的基于xml开发和配置

    pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  4. Spring中基于xml的AOP

    1.Aop 全程是Aspect Oriented Programming 即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的同一维护的一种技术.Aop是oop的延续,是软件开发中的 一个热点 ...

  5. 10 Spring框架--基于注解的IOC配置

    1.工程环境搭建 2.基于注解的IOC配置 IOC注解的分类 (1)用于创建对象的 他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的@Component: 作用: ...

  6. Spring入门之使用 spring 的 IOC 解决程序耦合(Spring 基于 XML 的 IOC 细节[掌握])(03-02)

    3.3Spring 基于 XML 的 IOC 细节[掌握] 3.3.1 spring 中工厂的类结构图 3.3.1.1 BeanFactory 和 ApplicationContext 的区别 Bea ...

  7. Spring中基于注解的IOC(二):案例与总结

    2.Spring的IOC案例 创建maven项目 导入依赖 pom.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

  8. Spring与Web框架(例如Spring MVC)漫谈——关于Spring对于多个Web框架的支持

    在看Spring MVC的官方文档时,最后一章是关于Spring对于其它Web框架的支持(如JSF,Apache Struts 2.x,Tapestry 5.x),当然Spring自己的MVC框架Sp ...

  9. Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配

    一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...

  10. maven新建Spring MVC + MyBatis + Oracle的Web项目中pom.xml文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

随机推荐

  1. macOS搭建SonarQube

    目录 前言 准备环境 下载安装包 解压路径:/usr/local 创建数据库 修改配置文件 配置环境变量 启动SonarQube 扫描项目 项目报告介绍 总结 前言 初到新公司,接手8-10个java ...

  2. 面试官:说说volatile底层实现原理?

    在 Java 并发编程中,有 3 个最常用的关键字:synchronized.ReentrantLock 和 volatile. 虽然 volatile 并不像其他两个关键字一样,能保证线程安全,但 ...

  3. Node.JS http server

    一.自动更新刷新 http server browser-sync dist --files "**/*" 二.http-server 三.webpack-dev-server的c ...

  4. 【Azure API 管理】讨论APIM是否适合直接存储文件到Azure Storage Account呢?

    问题描述 需要从 APIM 直接将大文件存入Azure Storage,没看到这方面的官方文档,所以是否有这方面的实践案例,或者APIM是否支持引用SDK (如Azure Storage SDK)? ...

  5. Java 关于继承小练习

    1 package com.bytezero.inherit; 2 3 /* 4 * 面向对象的特征二:继承性 5 * 6 * 一.继承性的好处: 7 * ①减少了代码的冗余,提供了代码的复用性 8 ...

  6. Cordova下载文件,监听进度,退出疯狂报错

    如题. 报错如下: W/cr_AwContents: Application attempted to call on a destroyed WebView java.lang.Throwable ...

  7. (完美解决)chatGPT登陆正常却无法发送消息

    这几天要写关于项目的文字性材料,登陆上chatgpt,结果发现登陆正常,各方面都正常,但是点击发送消息就会不停转圈圈,无法发送出去,然后联想到之前看到朋友圈有人说chatGPT崩了,就没多在意,结果今 ...

  8. 使用PdfSharp从模板生成Pdf文件

    ​ 最近在做一个生成文档的需求.通过先制作一个包含各字段占位符的文档模板,导入这个模板并填写内容替换掉占位符,再输出成最终文件. 由于版式固定,安全性更好,业务上常用Pdf作为最终标准化的格式, 在. ...

  9. vscode 自动格式化md文件,搞得很是郁闷,加入 [markdown] 自定义配置 "editor.formatOnSave": false 搞定了。

    上下文: vscode做vue的项目开发,需要对代码进行格式化,用的vetur插件 正常来讲,代码保存的时候,需要进行格式化,所以配置文件会写成 "editor.formatOnSave&q ...

  10. AOSP-刷机

    准备 1.AOSP源码下载 可以参考AOSP下载且编译 这里我下载的是android-12.1.0_r5的AOSP源码 2.下载驱动 因为我下载的是android-12.1.0_r5的AOSP源码,因 ...