zoukankan      html  css  js  c++  java
  • spring开发_使用p名称空间配置属性

    项目结构:

    http://www.cnblogs.com/hongten/gallery/image/112563.html

    /spring_1400_p名称空间/src/com/b510/app/test/SpringTest.java

     1 package com.b510.app.test;
    2
    3 import org.springframework.context.ApplicationContext;
    4 import org.springframework.context.support.ClassPathXmlApplicationContext;
    5
    6 import com.b510.service.AnimalService;
    7
    8 public class SpringTest {
    9 public static void main(String[] args) {
    10 ApplicationContext act = new ClassPathXmlApplicationContext("beans.xml");
    11 // 获取id为animaleServiceOfDog的Bean
    12 AnimalService animalServiceOfDog = (AnimalService) act
    13 .getBean("animaleServiceOfDog");
    14 animalServiceOfDog.getInfo();
    15 // 获取id为animaleServiceOfCat的Bean
    16 AnimalService animalServiceOfCat = (AnimalService) act
    17 .getBean("animaleServiceOfCat");
    18 animalServiceOfCat.getInfo();
    19 }
    20 }

    /spring_1400_p名称空间/src/com/b510/service/AnimalService.java

     1 package com.b510.service;
    2
    3 /**
    4 * 动物抽象类
    5 *
    6 * @author Hongten
    7 *
    8 */
    9 public interface AnimalService {
    10
    11 /**
    12 * 获取相关信息
    13 */
    14 public abstract void getInfo();
    15
    16 }

    /spring_1400_p名称空间/src/com/b510/service/MeatService.java

     1 package com.b510.service;
    2
    3 /**
    4 * 定义抽象类MeatService肉类
    5 *
    6 * @author Hongten
    7 *
    8 */
    9 public interface MeatService {
    10
    11 /**
    12 * 定义方法whatMeat
    13 *
    14 * @return 返回一个字符串
    15 */
    16 public abstract String whatMeat();
    17 }

    /spring_1400_p名称空间/src/com/b510/service/impl/CatServiceBean.java

     1 package com.b510.service.impl;
    2
    3 import com.b510.service.AnimalService;
    4 import com.b510.service.MeatService;
    5
    6 /**
    7 * 定义猫类实现AnimaleService抽象类
    8 *
    9 * @author Hongten
    10 *
    11 */
    12 public class CatServiceBean implements AnimalService {
    13 private int age;
    14 private MeatService meatService;
    15
    16 public int getAge() {
    17 return age;
    18 }
    19
    20 public void setAge(int age) {
    21 this.age = age;
    22 }
    23
    24 @Override
    25 public void getInfo() {
    26 System.out.println("我是猫,我的年龄是:"+age+",我很喜欢吃"+meatService.whatMeat());
    27 }
    28
    29 public MeatService getMeatService() {
    30 return meatService;
    31 }
    32
    33 public void setMeatService(MeatService meatService) {
    34 this.meatService = meatService;
    35 }
    36
    37
    38 }

    /spring_1400_p名称空间/src/com/b510/service/impl/DogServiceBean.java

     1 package com.b510.service.impl;
    2
    3 import com.b510.service.AnimalService;
    4 import com.b510.service.MeatService;
    5
    6 /**
    7 * 定义DogServiceBean类
    8 *
    9 * @author Hongten
    10 *
    11 */
    12 public class DogServiceBean implements AnimalService {
    13 private int age;
    14 private MeatService meatService;
    15
    16 public MeatService getMeatService() {
    17 return meatService;
    18 }
    19
    20 public void setMeatService(MeatService meatService) {
    21 this.meatService = meatService;
    22 }
    23
    24 public int getAge() {
    25 return age;
    26 }
    27
    28 public void setAge(int age) {
    29 this.age = age;
    30 }
    31
    32 @Override
    33 public void getInfo() {
    34 System.out.println("我是狗,我的年龄是:" + age + ",我很喜欢吃"
    35 + meatService.whatMeat());
    36 }
    37
    38 }

    /spring_1400_p名称空间/src/com/b510/service/impl/FishServiceBean.java

     1 package com.b510.service.impl;
    2
    3 import com.b510.service.MeatService;
    4
    5 /**
    6 * 定义鱼肉实现MeatService抽象类
    7 *
    8 * @author Hongten
    9 *
    10 */
    11 public class FishServiceBean implements MeatService {
    12
    13 @Override
    14 public String whatMeat() {
    15 return "鱼肉";
    16 }
    17
    18 }

    /spring_1400_p名称空间/src/com/b510/service/impl/PorkServiceBean.java

     1 package com.b510.service.impl;
    2
    3 import com.b510.service.MeatService;
    4
    5 /**
    6 * 定义猪肉实现MeatService抽象类
    7 *
    8 * @author Hongten
    9 *
    10 */
    11 public class PorkServiceBean implements MeatService {
    12
    13 @Override
    14 public String whatMeat() {
    15 return "猪肉";
    16 }
    17
    18 }

    /spring_1400_p名称空间/src/beans.xml

     1 <?xml version="1.0" encoding="GBK"?>
    2 <!-- Spring配置文件的根元素,使用spring-beans-3.0.xsd语义约束 -->
    3 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4 xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p"
    5 xsi:schemaLocation="http://www.springframework.org/schema/beans
    6 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    7 <bean id="meatServiceOfFish" class="com.b510.service.impl.FishServiceBean"></bean>
    8 <bean id="meatServiceOfPork" class="com.b510.service.impl.PorkServiceBean"></bean>
    9 <bean id="animaleServiceOfDog" class="com.b510.service.impl.DogServiceBean"
    10 p:age="12" p:meatService-ref="meatServiceOfPork" />
    11 <bean id="animaleServiceOfCat" class="com.b510.service.impl.CatServiceBean"
    12 p:age="3" p:meatService-ref="meatServiceOfFish" />
    13 </beans>

    使用p名称空间没有标准的XML格式灵活,如果某个Bean的属性名称是以"-ref"结尾的,那么采用p名称空间定义是就会出现错误,采用标准的XML格式是

    不会出现这样的错误滴!!!

    运行结果:

     1 2012-3-12 12:58:51 org.springframework.context.support.AbstractApplicationContext prepareRefresh
    2 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@c1b531: display name [org.springframework.context.support.ClassPathXmlApplicationContext@c1b531]; startup date [Mon Mar 12 12:58:51 CST 2012]; root of context hierarchy
    3 2012-3-12 12:58:51 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    4 信息: Loading XML bean definitions from class path resource [beans.xml]
    5 2012-3-12 12:58:54 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
    6 信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@c1b531]: org.springframework.beans.factory.support.DefaultListableBeanFactory@111a775
    7 2012-3-12 12:58:54 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    8 信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@111a775: defining beans [meatServiceOfFish,meatServiceOfPork,animaleServiceOfDog,animaleServiceOfCat]; root of factory hierarchy
    9 我是狗,我的年龄是:12,我很喜欢吃猪肉
    10 我是猫,我的年龄是:3,我很喜欢吃鱼肉


  • 相关阅读:
    菱形继承问题
    类的组合
    类的派生
    EasyUI的columns中列标题居中
    C#的一般处理程序中Cookie的写入、读取、清除
    JS中设置input的type="radio"默认选中
    SQL Server 分页语句查询
    CSS中设置字体样式
    C#清空StringBuilder的三种方法
    EasyUI在子tab基础上再打开新的tab标签页
  • 原文地址:https://www.cnblogs.com/hongten/p/java_spring_pNameSpace.html
Copyright © 2011-2022 走看看