收藏私塾在线
 

欢迎您来到私塾在线网!   

请登录! 

免费注册 


564155611的笔记
状态: 离线
人气:3578
访问用户量:7
笔记经验:
总积分:100
级别:普通会员
搜索本笔记
ta的交流分类
ta的交流主题贴(0)
ta的所有交流贴(1)
ta的全部笔记
全部笔记(2)
未分类笔记(0)
课程笔记(2)
存档
2017-09(1)
2017-08(1)

2017-09-04 00:02:02
Spring3开发实战-独家视频教程-视频教程学习笔记
浏览(1668)|评论(2)   交流分类:学习问题讨论|笔记分类: 课程笔记

IoC/DI的HelloWorld,理解HelloWorld的调用过程 视频教程学习笔记
视频课程地址:Spring3开发实战-独家视频教程
当前播放的视频地址:IoC/DI的HelloWorld,理解HelloWorld的调用过程

Bean对象的相关概念:
1.在Spring中,那些有IoC容器管理的对象就是Bean
2.容器:初始化,装配和负责组件的生命周期。
3.Bean的定义和Bean之间的依赖关系通过配置元数据来描述。
IoC容器:org.springframework.beans.factory. BeanFactory是Ioc容器的实际代表者,他负责Bean的实例化和装配
IoC/DI是Spring最核心的功能之一,Spring框架所提供的众多功能之所以能成为一个整体正是建立在IoC的基础之上。
BeanFactory和ApplicationContext:
1.org.springframework.beans及org.springfra mework.context包是Spring IoC容器的基础。
2.BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。
3.ApplicationContext是BeanFactory的扩展,功能得到了进一步增强,比如更易与Spring AOP集成、消息资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicationContext)。
接口选择:选择ApplicationContext
He'llWorld的基本调用过程:
①client->ApplicationContext->IoC/DI->applicationContext.xml
②根据client的要求创建bean实例->ApplicationContext得到了bean实例->将Bean实例传递到Client


IoC/DI的配置使用,第一部分,依赖注入的实现 笔记
IoC容器的对象表达就是ApplicationContext,DataSource代表的是连接池
Spring IoC容器的实例化:
第一种:
Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
第二种:
ClassPathResource resource = new ClassPathResource("bean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
第三种:
ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","applicationContext-extrapart.xml"});
BeanFactory factory = (BeanFactory)context;

在第三种方式中:
1.加载的ClassPath下的资源
2.加载new String[]中的多个资源文件时可能会造成名字重复的问题,此时会导致后面的文件中同名的bean覆盖前面文件中的同名的bean,所以建议:
①模块的公共部分起名为applicationContext .xml
②不同模块的xml起名为applicationContext-模块.xml
③模块中bean的名字前加上当前模块的名字作为前缀
强调一点:每读取一次配置文件,就会创建一个IoC容器的实例。没创建一个IoC容器的实例就会对应在Spring的缓存中创建一片与配置文件对应的一个内存空间。
所以,对于同一个配置文件应该只被读取一次!最好是一次读取配置文件,只创建一个applicationContext。

配置文件中常见的配置内容:
bean的定义:
1.全限定类名:这通常是bean的实际实现类。如果通过static factory方法来实例化bean,而不是使用常规的构造器,那么类名实际上就是工厂类的类名。
2.bean行为的定义:即创建模式(是prototype还是singleton)、自动装配模式、依赖检查模式、初始化以及销毁方法。这些定义将决定bean在容器中的行为。
3.创建bean实例的构造器参数和属性值。比如,通过bean来定义连接池,可以通过属性或者构造参数指定连接数,以及连接池大小限制等。
4.bean之间的关系,即协作(或者称依赖)

命名Bean:
Bean的命名:

IoC/DI的配置使用,第一部分,依赖注入的实现 笔记
'IoC容器的对象表达就是ApplicationContext,DataSource代表的是连接池
Spring IoC容器的实例化:
第一种:
Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
第二种:
ClassPathResource resource = new ClassPathResource("bean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
第三种:
ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","applicationContext-extrapart.xml"});
BeanFactory factory = (BeanFactory)context;

在第三种方式中:
1.加载的ClassPath下的资源
2.加载new String[]中的多个资源文件时可能会造成名字重复的问题,此时会导致后面的文件中同名的bean覆盖前面文件中的同名的bean,所以建议:
①模块的公共部分起名为applicationContext .xml
②不同模块的xml起名为applicationContext-模块.xml
③模块中bean的名字前加上当前模块的名字作为前缀
强调一点:每读取一次配置文件,就会创建一个IoC容器的实例。没创建一个IoC容器的实例就会对应在Spring的缓存中创建一片与配置文件对应的一个内存空间。
所以,对于同一个配置文件应该只被读取一次!最好是一次读取配置文件,只创建一个applicationContext

读取多个配置文件
第一种方法:
为了加载多个XML文件生成一个ApplicationContext实例,可以将文件路径作为字符
串数组传给ApplicationContext构造器。而bean factory将通过调用bean defintion
reader从多个文件中读取bean定义。通常情况下,Spring团队倾向于上述做法,因为这样
各个配置并不会查觉到它们与其他配置文件的组合。
第二种方法:
使用一个或多个的元素来从另外一个或多个文件加载bean定义。所有的
元素必须放在元素之前以完成bean定义的导入。 让我们看个例子:







配置文件中常见的配置内容:
bean的定义:
1.全限定类名:这通常是bean的实际实现类。如果通过static factory方法来实例化bean,而不是使用常规的构造器,那么类名实际上就是工厂类的类名。
2.bean行为的定义:即创建模式(是prototype还是singleton)、自动装配模式、依赖检查模式、初始化以及销毁方法。这些定义将决定bean在容器中的行为。
3.创建bean实例的构造器参数和属性值。比如,通过bean来定义连接池,可以通过属性或者构造参数指定连接数,以及连接池大小限制等。
4.bean之间的关系,即协作(或者称依赖)

命名Bean:
Bean的命名: Bean的命名
每个bean都有一个或多个id(或称之为标识符或名称,在术语上可以理解成
一回事),这些id在当前IoC容器中必须唯一。
当然也可以为每个bean定义一个name,但是并不是必须的,如果没有指
定,那么容器将为其生成一个惟一的name。对于不指定name属性的原因我们会在
后面介绍(比如内部bean就不需要)。
n Bean命名的约定
bean的命名采用标准的Java命名约定,即小写字母开头,首字母大写间隔
的命名方式。如accountManager、 accountService等等。
对bean采用统一的命名约定将会使配置更加简单易懂。而且在使用Spring
AOP,这种简单的命名方式将会令你受益匪浅。
Bean的别名
一个Bean要提供多个名称,可以通过alias属性来加以指定 ,示例如下:

用构造器来实例化Bean ,前面的实例就是
使用静态工厂方法实例化
采用静态工厂方法创建bean时,除了需要指定class属性外,还需要通过
factory-method属性来指定创建bean实例的工厂方法,示例如下:

class="examples.ExampleBean2"
factory-method="createInstance"/>
实例化Bean-1
使用实例工厂方法实例化
使用此机制,class属性必须为空,而factory-bean属性必须指定为当前
(或其祖先)容器中包含工厂方法的bean的名称,而该工厂bean的工厂方法本身必
须通过factory-method属性来设定,并且这个方法不能是静态的,示例如下:


依赖注入(DI)基本的实现方式
DI主要有两种注入方式,即Setter注入和 构造器注入。
Setter方法示例:
public class HelloImpl implements HelloApi{
private String name = "";
public void setName(String name){
this.name = name;
}
public String helloSpring3(int a){
System.out.println("hello Spring3==="+a+",name="+name);
return "Ok,a="+a;
}
}
示例——配置文件

javass Spring3


构造器参数示例:
示例——Java类
public class HelloImpl implements HelloApi{
private String name = "";
public HelloImpl(String name){
this.name = name;
}
public String helloSpring3(int a){
System.out.println("hello Spring3==="+a+",name="+name);
return "Ok,a="+a;
}
}
示例——配置文件


javass Spring3


构造器参数的解析
1.默认解析方式
构造器参数将根据类型来进行匹配。
2.构造器参数类型匹配
可以使用type属性来显式的指定参数所对应的简单类型。例如:




3.构造器参数的索引
使用index属性可以显式的指定构造器参数出现顺序。例如:




构造器参数的名称
在Spring3里面,可以使用构造器参数的名称来直接赋值。例如:





配置参数说明:
idref元素
idref元素用来将容器内其它bean的id传给 或
元素,同时提供错误验证功能。idref元素和差不多,只是
传递一个字符串,用来方便xml检查。示例如下:





上述bean定义片段完全地等同于(在运行时)以下的片段


theTargetBean

第一种形式比第二种更可取的主要原因是,使用idref标记允许容器在部署
时 验证所被引用的bean是否存在。而第二种方式中,传给client bean的
targetName属性值并没有被验证。任何的输入错误仅在client bean实际实例化
时才会被发现(可能伴随着致命的错误)。如果client bean 是prototype类型
的bean,则此输入错误(及由此导致的异常)可能在容器部署很久以后才会被发
现。
如果被引用的bean在同一XML文件内,且bean名字就是bean id,那么可以
使用local属性,此属性允许XML解析器在解析XML文件时来对引用的bean进行验
证 ,示例如下:



引用其它的bean(协作者) ——ref元素
尽管都是对另外一个对象的引用,但是通过id/name指向另外一个对象却有
三种不同的形式,不同的形式将决定如何处理作用域及验证。
1:第一种形式也是最常见的形式是使用标记指定目标bean,示例:

2:第二种形式是使用ref的local属性指定目标bean,它可以利用XML解析器来验证
所引用的bean是否存在同一文件中。示例:

3:第三种方式是通过使用ref的parent属性来引用当前容器的父容器中的bean,并
不常用。示例:

<-- 注意这里的名字和parent的名字是一样的-->
class="org.springframework.aop.framework.ProxyFactoryBean">


内部Bean
所谓的内部bean(inner bean)是指在一个bean的或
元素中使用元素定义的bean。内部bean定义不需要
有id或name属性,即使指定id 或 name属性值也将会被容器忽略。示例:







'
精品视频课程推荐

Java数据结构和算法精讲版
本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上。 从零开始、全面系统、成体系的讲解数据结构和基本算法,循序渐进的讲述构建软件系统所常见的数据结构和算法。

ssh+jbpm项目(某集团OA)视频教程
达到能综合使用Struts2+Spring3+Hibernate3+Jbpm4来进行实际项目开发的能力。 包括:ssh和jbpm的整合;数据字典;通用DAO(Spring+Hibernate+泛型+反射+SpEL+模板方法模式);自动生成UUID的加强版;分层开发、SSH联合的基本开发;翻页的taglib;示范真实值和表现值,数据参照的实现;文件上传下载;主子表操;登录验证码;登录控制的拦截器

深入浅出学Spring Web MVC视频教程
系统、完整的学习Spring Web MVC开发的知识。包括:Spring Web MVC入门;理解DispatcherServlet;注解式控制器开发详解;数据类型转换;数据格式化;数据验证; 拦截器;对Ajax的支持;文件上传下载;表单标签等内容;最后以一个综合的CRUD带翻页的应用示例来综合所学的知识

Weblogic实战视频教程
WebLogic基础知识:WebLogic基本概念、正确安装WebLogic、建域、应用部署于JDBC选择、对WebLogic的监控和日志查看、集群的高可用性;课程目标:彻底掌握WebLogic的基本概念,在理解基本概念的基础上做到正确的安装WebLogic,根据不同的需求创建域,合理选择应用部署和JDBC配置。熟练掌握WebLogic的console监控,了解各种性能和运行指标,以及对监控结果的分析,运用集群的高可用性,对集群架设。

深入浅出学Spring Data JPA视频教程
系统、完整的学习Spring Data JPA开发的知识。包括:Spring Data JPA入门;JpaRepository基本功能 ;JpaRepository的查询;客户化扩展JpaRepository;Specifications查询。

浏览(1668)|评论(2)   交流分类:学习问题讨论|笔记分类: 课程笔记

评论(2)
请登录后评论 登录

关于我们 | 联系我们 | 用户协议 | 私塾在线服务协议 | 版权声明 | 隐私保护

版权所有 Copyright(C)2009-2012 私塾在线学习网