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. 第119篇: JavaScript 类

    好家伙,我们先来复习一下   关于Java,类的三大特征: 1.封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 2.继承,继承性更 ...

  2. 动态代码框架发布-CZGL.Roslyn

    CZGL.Roslyn 开源项目位置:https://github.com/whuanle/CZGL.CodeAnalysis 基于 Roslyn 技术的 C# 动态代码构建器以及编译器,开发者可以使 ...

  3. 使用 RKE 方式搭建 K8s 集群并部署 NebulaGraph

    本文由社区用户 Albert 贡献,首发于 NebulaGraph 论坛,旨在提供多一种的部署方式使用 NebulaGraph. 在本文,我将会详细地记录下我用 K8s 部署分布式图数据库 Nebul ...

  4. 测绘线性代数(四):数学期望、协方差、PCA

    数学期望 E(X) = ∑pixi,X为所有xi的集合,pi为xi对应的概率. 通常来说,xi都是离散的,除非像高斯分布,假设xi不是离散的,才用上式. 当xi是离散的,那么: E(X) = 1 / ...

  5. Python-Json异常:Object of type Decimal is not JSON serializable

    源起: 使用python分离出一串文本,因为是看起来像整数,结果json转换时发生异常:TypeError: Object of type Decimal is not JSON serializab ...

  6. Spring事务(五)-事务隔离级别

    Spring @Transactional注解isolation属性 @Transactional注解通过isolation属性设置事务隔离级别.如下: @Transactional(isolatio ...

  7. 摆脱鼠标系列 - vscode 单词自动翻译 快捷键 Alt + Z

    为什么 摆脱鼠标系列 - vscode 单词自动翻译 快捷键 Alt + Z 单词函数 省得每次都查字典了 插件名称 translate speaker 翻译朗读者API 截图

  8. 记一次maven不下来的经历

    起因:自己手动搭建个项目,参考公司项目使用了很多依赖,但是当自己maven时候发现一个依赖怎么也down不下来,就此展开了一番折腾 这个依赖叫 <dependency> <group ...

  9. Global AI Bootcamp 成都站 圆满结束!

    3月10日星期天下午2点「Global AI Bootcamp 2024 - 成都站」,在成都银泰中心蔚来汽车会议区圆满结束了! 本次活动共计吸引了约50名IT行业从业者线下参与,他们分别来自成都各行 ...

  10. 什么会导致JAVA应用程序的CPU使用率飙升

    问题 无限循环的while会导致CPU使用率飙升吗? 经常使用Young GC会导致CPU占用率飙升吗? 具有大量线程的应用程序的CPU使用率是否较高? CPU使用率高的应用程序的线程数是多少? 处于 ...