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. 常用 Maven 插件介绍

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  2. Hibernate过滤器使用窍门

    本文向大家介绍Hibernate过滤器,可能好多人还不了解Hibernate过滤器,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. Hibernate3新增了对某个类或者集合使用预先定 ...

  3. 【苹果】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本

    前言 缘由 Iphone15来了,两年之约你还记得吗? 遂整合之前iphone13及iphone14的相关抢购代码,完成一个SpringBoot监听Iphone15有货邮件提醒+python自动化脚本 ...

  4. 用CFF Explorer隐藏文件格式

    1.首先我们加载两个PNG文件,可以看到 文件格式头部是一样的,我们如何将一个PDF文件格式改成PNG,修改之后的文件虽然含有图片的文件头格式,但是并不能打开. 将PNG的文件头复制写入到PDF文件头 ...

  5. 完整塔建一个spring 注解版 mybaties 过程可供复制代码

    第一步引导包.新建工程maven模块 pom.xml 中导入相对应包 ++++++++++++++++++++++++++++++++++++++++++++       1      +++++++ ...

  6. Djiango视图层和模型层

    Djiango 使用教程 目录 Djiango 使用教程 一. 视图层 1.1 HttpResponse,render,redirect 1.2 JsonResponse 1.3 form表单上传文件 ...

  7. Zabbix6.0使用教程 (三)—zabbix6.0的安装要求

    接上篇,我们继续为大家详细介绍zabbix6.0的使用教程之zabbix6.0的安装部署.接下来我们将从zabbix部署要求到四种不同的安装方式逐一详细的为大家介绍.本篇讲的是部署zabbix6.0的 ...

  8. Caxa 二次开发 ObjectCRX-1 踩坑:环境配置以及 Helloworld

    绝了,坑是真 nm 的多,官方给的文档里到处都是坑. 用的环境 ObjectCRX,以下简称 objcrx. #1 安装环境 & 参考文档的大坑 #1.1 Caxa 提供的文档和环境安装包 首 ...

  9. [VueJsDev] 基础知识 - AutoNumber VsCode 插件开发

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html AutoNumber VsCode插件开发 ::: deta ...

  10. pdf 等所有文件通过blog强制下载函数 downloadFileFromBlobByToken

    downloadFileFromBlobByToken pdf 等所有文件通过blog强制下载函数 downloadFileFromBlobByToken import { getToken } fr ...