Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298569
  • 博文数量: 30
  • 博客积分: 732
  • 博客等级: 军士长
  • 技术积分: 439
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-10 00:13
文章分类

全部博文(30)

文章存档

2015年(1)

2013年(5)

2012年(24)

我的朋友

分类: 系统运维

2012-05-21 22:08:25

                            Spring 流程图
 
一.Spring 的作用?  将现有的技术集成起来
 
二.第一个简单的demo
 
1.在工程中添加spring组建  MyEclipse->add Struts 2.5
 
2.写一个接口测试类IHelloService 定义一个sayHello();
 
3.写一个类HelloServiceImpl 实现接口IHelloService 实现sayHello()方法;
 
4.配置applicationContext 
 
5.建立一个测试类TestMain
  1. public class TestMain {

  2.     /**
  3.      * 测试第一个Spring demo
  4.      */
  5.     public static void main(String[] args) {
  6.         // 启动Spring容器

  7.         // 告知Spring容器,读取配置文件

  8.         ApplicationContext ctx = new ClassPathXmlApplicationContext(
  9.                 "applicationContext.xml");
  10.         // 从Spring容器中获取helloService对应的对象

  11.         Object obj = ctx.getBean("helloService");
  12.         // 使用对象

  13.         IHelloService helloService = (IHelloService)obj;
  14.         System.out.println(helloService.sayHello("杨超"));
  15.     }
  16. }
输出结果:
 
Hello,杨超
 
 
二.配置文件分开编写后整合方法
 
  1. /*配置文件分开编写后整合的两种方法*/
  2.         String apps[] = {"applicationContext.xml","applicationContext_1.xml"};
  3.         ApplicationContext ctx1 = new ClassPathXmlApplicationContext(apps);
  4.         ctx1 = new ClassPathXmlApplicationContext("app*.xml");

别名效果:

  1. <alias name="helloService" alias="abc" />

调用时: Object obj = ctx.getBean("abc");

三.

1.new XXX();

2.new XXX(xxx xx);

1)若在HelloServiceImpl中添加了有参构造器,applicationContext.xml中若没配置就会提示以下错误

2)在applicationContext.xml中配置构造器中填入参数

  1. <bean id="helloService" class="cn.com.spring.service.impl.HelloServiceImpl">
  2.         <constructor-arg>
  3.             <value>谭毓燕</value>
  4.         </constructor-arg>
  5.     </bean>

结果:

     谭毓燕说:Hello,杨超

3.通过静态方法产生一个对象(单例模式,工厂模式)

4.通过别的对象

  1. package cn.com.spring.service.factory;

  2. import cn.com.spring.service.IHelloService;
  3. import cn.com.spring.service.impl.HelloServiceImpl;

  4. /**
  5.  * 1.通过静态方法产生一个对象(单例模式,工厂模式)
  6.  * 2.根据对象产生另外一个对象
  7.  * @author YC
  8.  *
  9.  */
  10. public class HelloServiceFactory {

  11.     /**
  12.      * 单例模式
  13.      */
  14.     private static HelloServiceFactory factory = null;

  15.     private HelloServiceFactory() {

  16.     }

  17.     public static HelloServiceFactory getInstance() {
  18.         if (factory == null) {
  19.             factory = new HelloServiceFactory();
  20.         }
  21.         return factory;
  22.     }

  23.     /**
  24.      * 根据对象产生另外一个对象
  25.      */
  26.     public IHelloService createHelloService() {
  27.         IHelloService service = null;
  28.         service = new HelloServiceImpl("谭毓燕");
  29.         return service;
  30.     }

  31. }

完整的applicationContext.xml配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns=""
  3. xmlns:xsi="" xmlns:p=""
  4. xsi:schemaLocation=" /spring-beans-2.5.xsd">

  5. <!-- 通过有参构造器产生对象-->
  6. <bean id="helloService" class="cn.com.spring.service.impl.HelloServiceImpl">
  7. <constructor-arg>
  8. <value>谭毓燕</value>
  9. </constructor-arg>
  10. </bean>

  11. <!--通过静态方法产生对象-->
  12. <bean id="helloServiceFactory" class="cn.com.spring.service.factory.HelloServiceFactory"
  13. factory-method="getInstance">
  14. </bean>

  15. <!-- 调用一个对象的方法产生另外一个对象 -->
  16. <bean id="helloService2" class="cn.com.spring.service.factory.HelloServiceFactory"
  17. factory-bean="helloServiceFactory" factory-method="createHelloService"></bean>
  18. </beans>

   后两种测试时候只需改变object obj = ctx.getBean("xxx");

手写下测试代码方便理解

  1. //启动Spring容器

  2. //告知Springle容器,读取配置文件

  3. //ApplicationContext ctx = new ClassPathXmlApplicationContext("app*.xml");

  4. //从Spring容器中获取helloService对应的对象

  5. Object obj = ctx.getBean("xxx");
  6. //使用对象

  7. IHelloService hello = (IHelloService)obj;
  8. sys(hello);
  1. public class TestMain {
  2.    public static void main() {
  3.      ApplicatonContext ctx = new ClassPathXmlApplicationContext(app*.xml);
  4.      Object obj = ctx.getBean("xxx");
  5.      IHelloService helloService = (IHelloService)obj;
  6.      System.out.println(helloService.sayHello("xxx"));
  7.   }
  8. }

 
 
 
 
 
 
阅读(2126) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

q_48282222012-07-18 17:31:01

最乖啦啦: 文章很清晰明了,学习了!!!.....
谢谢

q_48282222012-06-03 20:57:21

最乖啦啦: 文章很清晰明了,学习了!!!.....
呵呵 谢谢了。我们一起加油学习哈

最乖啦啦2012-05-23 11:34:31

文章很清晰明了,学习了!!!