spring复习(一)框架概述和spring中基于xml的IOC配置
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配置的更多相关文章
- Spring 框架的概述以及Spring中基于XML的IOC配置
Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器. ...
- 03-Spring基于xml的IOC配置--spring的依赖注入
1.概念 依赖注入:Dependency Injection(简称DI注入).它是 spring 框架核心 ioc 的具体实现. 简单理解:可以在一个类中不通过new的方式依赖其它对象.目的是为了解耦 ...
- Spring中AOP的基于xml开发和配置
pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
- Spring中基于xml的AOP
1.Aop 全程是Aspect Oriented Programming 即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的同一维护的一种技术.Aop是oop的延续,是软件开发中的 一个热点 ...
- 10 Spring框架--基于注解的IOC配置
1.工程环境搭建 2.基于注解的IOC配置 IOC注解的分类 (1)用于创建对象的 他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的@Component: 作用: ...
- Spring入门之使用 spring 的 IOC 解决程序耦合(Spring 基于 XML 的 IOC 细节[掌握])(03-02)
3.3Spring 基于 XML 的 IOC 细节[掌握] 3.3.1 spring 中工厂的类结构图 3.3.1.1 BeanFactory 和 ApplicationContext 的区别 Bea ...
- Spring中基于注解的IOC(二):案例与总结
2.Spring的IOC案例 创建maven项目 导入依赖 pom.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
- Spring与Web框架(例如Spring MVC)漫谈——关于Spring对于多个Web框架的支持
在看Spring MVC的官方文档时,最后一章是关于Spring对于其它Web框架的支持(如JSF,Apache Struts 2.x,Tapestry 5.x),当然Spring自己的MVC框架Sp ...
- Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配
一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...
- 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 ...
随机推荐
- 【Azure 应用服务】应用代码中需要使用客户端证书访问服务接口,部署在应用服务后报错不能找到证书(Cannot find the X.509 certificate)
问题描述 在应用中,需要访问另一个服务接口,这个接口需要使用客户端证书进行认证.在代码中使用 System.Security.Cryptography.X509Certificates 加载Windo ...
- 【Azure 应用服务】使用命令行创建 webapp 应用出现命令语法不正确错误
问题描述 根据Azure App Service 入门文档 "快速入门:在 Linux 上的 Azure 应用服务中创建 Python 应用" 在创建App Service应用时候 ...
- 使用 maven 的 `wagon-maven-plugin`插件 快速部署 到不同的 环境
profile 在pom文件中配置 开发和测试环境的 profile信息, <profiles> <profile> <!-- 开发环境 --> <id> ...
- Java //在150之内 是三的倍数 输出Zzz 是5个倍数输出 Lll 是7的倍数输出zlzl
1 //在150之内 是三的倍数 输出Zzz 是5个倍数输出 Lll 是7的倍数输出zlzl 2 int i =1; 3 for(i = 1; i<=150;i++) 4 { 5 System. ...
- 微信小程序开发:页面分享卡片、风格选择、通道启用等可配置
上文说到,我们部署了定时任务,但是有个地方忘记在上文写了,这里补上,就是定时任务的超时时间问题,超时时间有7200秒: 我们改成7100秒: 再把云函数调用的云对象的超时时间也改下: 超时时间多一点, ...
- Java面试挂在线程创建后续,不要再被八股文误导了!创建线程的方式只有1种
写在开头 在上篇博文中我们提到小伙伴去面试,面试官让说出8种线程创建的方式,而他只说出了4种,导致面试挂掉,在博文中也给出了10种线程创建的方式,但在文章的结尾我们提出:真正创建线程的方式只有1种,剩 ...
- Android学习之SQLite数据库存储
•引言 概念 SQLite数据库,和其他的SQL数据库不同, 我们并不需要在手机上另外安装一个数据库软件,Android系统已经集成了这个数据库: 特点 SQLite是一个轻量级的关系型数据库,运算速 ...
- tmux使用--同步多终端输入
最近一直需要同时操作多个远程机器,就简单学习了下tmux的使用.tmux(terminal multiplexer)是终端复用神器.对多个窗格同时使用特别好用,同步操作多台机器特别方便. tmux安装 ...
- GoLand打开后Project消失
一直用的好好的Goland,突然不能用了,左边栏Project"消失"了. 如下: 解决方法 遇到上面问题,一般情况是GoLand的cache问题,这个时候要将GoLand清理一下 ...
- Windows 2012 R2 修复CredSSP 远程执行代码漏洞 CVE-2018-0886
本文基于window 2012 R2版本,各位参考下载自己版本对应的补丁包即可 说明 公司的安全性检查,需要修复服务器上的漏洞,其中有个漏洞是CVE-2018-0886,结果网上的资料和一番折腾,终于 ...