Spring - 开始 , IOC创建对象,别名 和 创建对象的方式
来源:互联网 发布:盛杰网络课下载 编辑:程序博客网 时间:2024/05/02 04:22
1.开始
(1)框架是什么 ?
使用别人搭好的舞台,你来做表演;框架的特点 : 半成品,封装了特定的处理流程和控制逻辑,成熟的不断升级改进的软件;
框架与类库的区别 :框架一般是封装了逻辑,高内聚的,类库则是松散的工具组合;
(2)为什么使用框架 ?
软件系统日趋复杂;重用度高,开发效率和质量提高;
软件设计人员要专注于对框架的了解;
(3)Spring 简介
官网 :spring.io一个开源框架,为了解决应用开发复杂性而创建的;
是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,
从大小与开销两方面而言Spring都是轻量级的;
通过控制反转(IOC)的技术达到松耦合的目的;
提供了面向切面编程的丰富的支持,允许通过分离应用的业务逻辑与系统服务进行内聚性的开发;
包含并管理应用对象的配置和生命周期,这个意义上市一种容器;
将简单的组件配置,组合成为复杂的应用,这个意义上市框架;
Spring是非常活跃的开源框架,它是一个基于Core来构架多层javaEE系统框架,它的主要目的是简化企业开发;
Spring以一种非侵入式的方式来管理你的代码,Spring提倡最少侵入,这样就意味着你可以适当的时候安装或卸载Spring;
(4)优点
简单,方便,快捷,面向接口编程
(5)容器
提供了多种技术的支持 : JMS ,MQ ,UnitTest ..;AOP(事务管理,日志等);
提供了众多方便的应用辅助类 (JDBC Template等);
对主流应用框架(Hibernate)提供了良好的支持;
(6) 使用范围:
构建企业应用 : SpringMvc + Spring + Hibernate/Mybatis/ibatis单独使用Bean容器,bean管理;
单独使用AOP进行切面处理;
其他的Spring功能,如对消息的支持等;
在其它互联网中的应用;
(7)面向接口编程
接口:用于沟通的中介物的抽象化,对应java接口及声明,声明了那些方法是对外公开提高的;(在java8中,接口可以拥有方法体)面向接口编程:
->结构设计中,分清层次及调用关系,每层只向外层提高一组功能接口,各层间仅依赖接口而非实现类;
->接口实现的变动不影响各层间的调用,这一点在公共服务中尤为重要;
->面向接口编程中的接口是用于隐藏具体实现和实现多态性的组件;
2. IOC
控制反转 总结一句话 : 即 把对象的创建交给Spring容器来做;
(1)创建对象步骤实现
1)新建helloSpring.java
public class HelloSpring {public void hello(){System.out.println("HI Spring , CreateObj!");}}
2)新建ApplicationContext-createhello.xml 配置bean
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="hellospring" class="cn.labelnet.createhello.HelloSpring"></bean> </beans>
3)新建ApplicationContext.xml 导入资源
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 导入资源 --> <import resource="/cn/labelnet/createhello/ApplicationContext-createhello.xml"/> </beans>
4)测试 : 新建测试类
启动Spring容器,从Spring容器中将对象取出来,调用方法
private final String BENA_CONTEXT_XML="ApplicationContext.xml";@Testpublic void testHelloWord(){ApplicationContext applicationContext=new ClassPathXmlApplicationContext(BENA_CONTEXT_XML);HelloSpring hs = (HelloSpring) applicationContext.getBean("hellospring");hs.hello();}
(2)使用别名(Alias)创建对象
1)新建java类
public class HelloSpring {public void hello(){System.out.println("HI Spring , Alias!");}}
2)新建配置文件配置bean和别名 alias
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- id唯一标识,class类的路径 --> <bean id="hellospring_alias" class="cn.labelnet.alias.HelloSpring"></bean> <!-- name 为bean的id --> <alias name="hellospring_alias" alias="hi_alias"/> </beans>
3)测试
@Testpublic void testHelloWordAlias(){ApplicationContext applicationContext=new ClassPathXmlApplicationContext(BENA_CONTEXT_XML);HelloSpring hs = (HelloSpring) applicationContext.getBean("hi_alias");hs.hello();}
3.spring容器创建对象的方式
(1) 默认是调用默认的构造函数;
(2)利用静态工厂创建 factory-mehtod属性;
spring调用工厂方法产生对象,但是真正创建对象还是要自己写;说明:spring配置文件中,只要是一个bean就会为该bean创建对象;
(3)实例工厂方法,配置 factory-bean 属性;
(4)实例
1)新建helloword类
<span style="font-family:Comic Sans MS;font-size:18px;">public class HelloSpring {public HelloSpring() { System.out.println("It's Default 构造函数!");}public void hello(){System.out.println("HI Spring , 默认构造函数方式!");}}</span>
public class HelloSpringFactory {public static HelloSpring getInstance(){return new HelloSpring();} public void hello(){System.out.println("HI Spring , 默认构造函数方式!");}}
3)新建配置
<span style="font-family:Comic Sans MS;font-size:18px;"><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- id唯一标识,class类的路径 --> <bean id="hellospring_default_type" class="cn.labelnet.createtype.HelloSpring"></bean> <!-- factory-method : 添加工厂方法方法名 --> <bean id="hellospring_factory" class="cn.labelnet.createtype.HelloSpringFactory" factory-method="getInstance"></bean> </beans></span>
4)总配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 导入资源 --> <import resource="/cn/labelnet/alias/ApplicationContext-Alias.xml"/> <import resource="/cn/labelnet/createhello/ApplicationContext-createhello.xml"/> <import resource="/cn/labelnet/createtype/ApplicationContext-createType.xml"/> </beans>
5)测试
@Testpublic void testHelloWordFactoryType(){ApplicationContext applicationContext=new ClassPathXmlApplicationContext(BENA_CONTEXT_XML);HelloSpring hs = (HelloSpring) applicationContext.getBean("hellospring_factory");hs.hello();}
4.总结
刚刚开始学习Spring知识,还未了解更多,与mybatis相比,在IOC配置文件上和Mapper配置有相似之处;
Demo免积分下载 :http://download.csdn.net/detail/lablenet/9376525
- Spring - 开始 , IOC创建对象,别名 和 创建对象的方式
- Spring(IOC) 对象创建三种方式、对象bean起别名
- 重温spring框架1--ioc创建对象的方式
- spring IOC容器创建对象的三种方式
- Spring IOC创建对象的三种方式
- 【Spring】IOC容器创建对象
- Spring 研究spring创建对象的方式
- 第二讲 使用Spring IoC创建对象的3种方式
- 使用ioc来创建对象有三种方式
- spring创建对象的方式(3种)
- 使用Spring创建对象的方式
- spring创建对象的几种方式
- spring容器创建bean对象的方式
- Spring - IOC创建对象的时机,创建Bean的Scope 及其 IOC的 生命周期
- spring容器IOC创建对象<二>
- 【Spring】IOC容器--创建对象(六)
- Spring的核心之IoC容器创建对象
- 创建对象的方式
- oracle中rollback语句作用范围
- DZ论坛php的sql操作中的中文乱码问题
- leveldb实现原理
- 使用plsql时怎么设置字符集
- Let's Encrypt,免费好用的 HTTPS 证书
- Spring - 开始 , IOC创建对象,别名 和 创建对象的方式
- (转)最强Android模拟器genymotion的安装与配置
- VS2008的MSDN无法显示的问题
- java opt 设置
- failed to find Build Tools revision 23.0.2
- Java并发库(十八):阻塞队列
- setting菜单界面的形成--未优化
- Wince直连SqlServer的方法(C#)
- JUnit简单使用