spring05配置文件之间的关系

一:配置文件包含关系

1.创建对应的实体类

public class Student {   //学生实体类

    private  String   name;  //姓名
    private  Integer  age;  //年龄
    private  Grade   grade;  //年级

    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + ", grade=" + grade
                + "]";
    }

    public Student() {
        super();
    }
    public Student(String name, Integer age, Grade grade) {
        super();
        this.name = name;
        this.age = age;
        this.grade = grade;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public Grade getGrade() {
        return grade;
    }
    public void setGrade(Grade grade) {
        this.grade = grade;
    }
}

Student实体类

public class Grade {   //年级实体类
    private String  name;  //年级名称

    @Override
    public String toString() {
        return "Grade [name=" + name + "]";
    }

    public Grade() {
        super();
    }

    public Grade(String name) {
        super();
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

Grade实体类

2.创建配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd">

<!--年级的Bean  -->
 <bean id="grade" class="cn.bdqn.bean.Grade" p:name="1年级"/>

</beans>

子配置文件1

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd">

<!--学生的Bean    属性grade  在这个容器中没有对应的bean -->
 <bean id="student" class="cn.bdqn.bean.Student" p:name="小马哥"
   p:age="50" p:grade-ref="grade"/>

</beans>

子配置文件2

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd">

<!-- 01.把其他的子文件包含进来
  <import resource="spring-grade.xml"/>
  <import resource="spring-student.xml"/> -->
<!-- 02.把其他的子文件包含进来    当前的这个主的配置文件不能命名成spring-* 这种格式  -->
  <import resource="spring-*.xml"/>
</beans>

总配置文件

3.创建对应的测试类

public class StudentTest {

    //配置文件的包含关系
    @Test
    public  void  test01(){
        ApplicationContext context=
                new ClassPathXmlApplicationContext("applicationContext.xml");
        Student student=(Student) context.getBean("student");
        System.out.println("student信息:"+student);
    }

}

测试类

效果图如下

二:配置文件平级关系

1.删除上面练习中的总配置文件,只剩下两个平级的xml文件

2.书写测试类

public class StudentTest {

    //01.配置文件的平级关系
    @Test
    public  void  test01(){    //推荐使用  保证配置文件名称格式统一
        ApplicationContext context=
                new ClassPathXmlApplicationContext("spring-*.xml");
        Student student=(Student) context.getBean("student");
        System.out.println("student信息:"+student);
    }
    //02.配置文件的平级关系
    @Test
    public  void  test02(){
        ApplicationContext context=
                new ClassPathXmlApplicationContext("spring-student.xml","spring-grade.xml");
        Student student=(Student) context.getBean("student");
        System.out.println("student信息:"+student);
    }
    //03.配置文件的平级关系
    @Test
    public  void  test03(){
        String resource1="spring-student.xml";
        String resource2="spring-grade.xml";
        String [] resources={resource1,resource2};
        ApplicationContext context=
                new ClassPathXmlApplicationContext(resources);
        Student student=(Student) context.getBean("student");
        System.out.println("student信息:"+student);
    }

}

测试类

注解配置!引入需要的aop.jar

/**
 * 学生类
 */
@Component("student")
public class Student {
    @Value("999")
    private Integer  age;
    @Value("小黑")
    private String  name;
    /**
     * 01.
     * @Autowired:
     * 默认是按照byType 类型匹配
     * @Autowired
       @Qualifier("grades")  按照byName进行匹配

       02.
       @Resource
           默认是按照byType 类型匹配
       @Resource(name="grades")
     */
    private  Grade grade;

    public Student(Integer ages, String names, Grade grades) {
        this.age = ages;
        this.name = names;
        this.grade = grades;
    }

    public Student(Integer age, String name) {
        this.age = age;
        this.name = name;
    }

    public Student() {

    }

    @Override
    public String toString() {
        return "Student [age=" + age + ", name=" + name + ", grade=" + grade
                + "]";
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Grade getGrade() {
        return grade;
    }
    public void setGrade(Grade grade) {
        this.grade = grade;
    }

}
/**
 * 年级类
 */
@Component("grades")
public class Grade {
    @Value("9年级")
    private  String  name;  //年级名称

    public String getName() {
        return name;
    }

    //DI  依赖注入
    public void setName(String name) {
        this.name = name;
    }

    public Grade(String name) {
        super();
        this.name = name;
    }

    public Grade() {
        super();
    }

    @Override
    public String toString() {
        return "Grade [name=" + name + "]";
    }

}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        ">

     <!--  查询所有注解的类  -->
      <context:component-scan base-package="cn.bdqn"/><!--扫描本包和其子包下面的所有文件  -->
      <!--<context:component-scan base-package="cn.bdqn.*"/>扫描子包下面的所有文件  -->
</beans>

测试类

public class StudentTest {

    ApplicationContext context=null;
    @Before
    public  void before(){
        context=new  ClassPathXmlApplicationContext("applicationContext.xml");
    }

    @Test
    public  void  test01(){
        Student student=(Student) context.getBean("student");
        System.out.println(student);
    }

}
时间: 2024-10-12 04:51:06

spring05配置文件之间的关系的相关文章

mybatis学习笔记(1):搭建开发环境,以及mybatis各个配置文件之间的关系

一.环境 1.myeclipse10.7 2.数据库:mysql 3.jdk:jdk1.8 4.jar包:mybatis3.2.0.jar mysql-connector-java-5.1.22-bin.jar    log4j-1.2.16.jar 二.步骤 1.新建一个web工程:mybatis001. 将所需Jar包都拷贝到工程的WebRoot\WEB-INF\lib目录下(或者建一个java工程) 2.mysql新建一个数据库表:mybatis001 3.在表中增加2条信息 4.新建以下

转:TCP/IP详解--举例明白发送/接收缓冲区、滑动窗口协议之间的关系

原文地址:http://blog.csdn.net/yusiguyuan/article/details/21439633#1536434-tsina-1-74921-66a1f5d8f89e9ad52626f6f40fdeadaa  TCP/IP详解--举例明白发送/接收缓冲区.滑动窗口协议之间的关系. 一个例子明白发送缓冲区.接受缓冲区.滑动窗口协议之间的关系. 在上面的几篇文章中简单介绍了上述几个概念在TCP网络编程中的关系,也对应了几个基本socket系统调用的几个行为,这里再列举一个例

(转)关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系

转自http://www.cnblogs.com/cywin888/p/3263027.html 刚接触iOS开发的人难免会对苹果的各种证书.配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解.这篇文章就对Certificate.Provisioning Profile等做个总结. 1.概念介绍 如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profiles,你就可以看到如

峰Spring4学习(5)bean之间的关系和bean的作用范围

一.bean之间的关系: 1)继承: People.java实体类: package com.cy.entity; public class People { private int id; private String name; private int age; private String className; public int getId() { return id; } public void setId(int id) { this.id = id; } public Strin

Java日志commons-logging log4j slf4j之间的关系

一.之前进行日志操作一般都是在一个类中加入如下代码: import org.apache.log4j.Logger; //引入的是log4j的包 private static final Logger LOG = Logger.getLogger(Test.class); 二.后来看见别人的代码是这样写的: import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; //引入的是comm

ThinkPHP教程_PHP框架之ThinkPHP(二)【URL路径访问与模块控制器、URL四种模式、PATHINFO的两种模式、模板与控制器之间的关系】

一.URL路径访问与模块控制器 URL 模块(控制器) 动作(方法) 即以上三者之间的关系URL:http://127.0.0.1/projectName/index.php/模块/动作 1.ThinkPHP规定,两点 ·第一.所有的主入口文件默认访问index控制器(模块) ·第二.所有的控制器默认执行index方法(动作) 特别强调一下,以上两点是独立的!也就是说"所有的主入口文件默认访问index控制器,并执行默认执行index方法"是不准确的 那么,http://127.0.0

servlet和web容器之间的关系

Java是一种动态加载和运行的语言.也就是说当应用程序持有一个类的地址(CLASSPATH)和名称(包名和类名)的情况下,可以在程序运行期 间任何时候加载这个类,并创建和使用该类的对象.Servlet就是基于这个机制与Web容器融合在一起的.目前已知的所有支持Java Servlet的Web容器都是采用Java开发的.当Web容器接收到来自客户端的请求信息之后,会根据URL中的Web元件地址信息到Servlet 队列中查找对应的Servlet对象,如果找到则直接使用,如果没有找到则加载对应的类,

【Spring】IOC容器之bean之间的关系

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文主要讲了Spring中Bean之间的关系,分为继承.依赖和引用三个类型.文章中都分别有例子和用法分析. 一.继承Bean配置 Spring允许继承bean的配置 ,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean 子Bean从父Bean中继承配置,包括Bean的属性配置 子Bean也可以 覆盖 从父Bean继承过来的配置 父Bean可以作为配置模版,也可以作为B

JPA概述以及它和Hibernate之间的关系

http://www.cnblogs.com/Kevin-ZhangCG/p/8996491.html 一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口),它定义一系列的注释.这些注释大体可分为:类级别注释.方法级别注释.字段级别注释.给实体类添加适当的注释可以在程序运行时告诉Hibernate如何将一个实体类保存到数据库中以及如何将数据以对象的形式