• 吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_AppConfig


    <?xml version="1.0" encoding="GBK"?>
    <project name="spring" basedir="." default="">
        <property name="src" value="src"/>
        <property name="dest" value="classes"/>
    
        <path id="classpath">
            <fileset dir="../../lib">
                <include name="**/*.jar"/>
            </fileset>
            <pathelement path="${dest}"/>
        </path>
    
        <target name="compile" description="Compile all source code">
            <delete dir="${dest}"/>
            <mkdir dir="${dest}"/>
            <copy todir="${dest}">
                <fileset dir="${src}">
                    <exclude name="**/*.java"/>
                </fileset>        
            </copy>
            <javac destdir="${dest}" debug="true" includeantruntime="yes"
                deprecation="false" optimize="false" failonerror="true">
                <src path="${src}"/>
                <classpath refid="classpath"/>
                <compilerarg value="-Xlint:deprecation"/>
            </javac>
        </target>
    
        <target name="run" description="Run the main class" depends="compile">
            <java classname="lee.BeanTest" fork="yes" failonerror="true">
                <classpath refid="classpath"/>
            </java>
        </target>
    
    </project>
    <?xml version="1.0" encoding="GBK"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.springframework.org/schema/beans"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
        <!-- 配置chinese实例,其实现类是Chinese -->
        <bean id="chinese" class="org.crazyit.app.service.impl.Chinese">
            <!-- 驱动Spring执行setAxe()方法,以容器中id为stoneAxe的Bean为参数 -->
            <property name="axe" ref="stoneAxe"/>
            <!-- 驱动Spring执行setName()方法,以字符串"孙悟空"为参数 -->
            <property name="name" value="孙悟空"/>
        </bean>
        <!-- 配置stoneAxe实例,其实现类是StoneAxe -->
        <bean id="stoneAxe" class="org.crazyit.app.service.impl.StoneAxe"/>
        <!-- 配置steelAxe实例,其实现类是SteelAxe -->
        <bean id="steelAxe" class="org.crazyit.app.service.impl.SteelAxe"/>
    </beans>
    package lee;
    
    import org.springframework.context.*;
    import org.springframework.context.support.*;
    import org.springframework.context.annotation.*;
    
    import org.crazyit.app.service.*;
    import org.crazyit.app.config.*;
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class BeanTest
    {
        public static void main(String[] args)throws Exception
        {
            // 创建Spring容器
            ApplicationContext ctx = new
                AnnotationConfigApplicationContext(AppConfig.class);
    //        ApplicationContext ctx = new
    //            ClassPathXmlApplicationContext("beans.xml");
            // 获取chinese 实例
            Person p = ctx.getBean("chinese" , Person.class);
            // 调用useAxe()方法
            p.useAxe();
        }
    }
    package org.crazyit.app.config;
    
    import org.springframework.context.annotation.*;
    import org.springframework.beans.factory.annotation.*;
    
    import org.crazyit.app.service.*;
    import org.crazyit.app.service.impl.*;
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    @Configuration
    public class AppConfig
    {
        // 相当于定义一个名为personName的变量,其值为"孙悟空"
        @Value("孙悟空") String personName;
        // 配置一个Bean:chinese
        @Bean(name="chinese")
        public Person person()
        {
            Chinese p = new Chinese();
            p.setAxe(stoneAxe());
            p.setName(personName);
            return p;
        }
        // 配置Bean:stoneAxe
        @Bean(name="stoneAxe")
        public Axe stoneAxe()
        {
            return new StoneAxe();
        }
        // 配置Bean:steelAxe
        @Bean(name="steelAxe")
        public Axe steelAxe()
        {
            return new SteelAxe();
        }
    }
    package org.crazyit.app.service;
    
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public interface Axe
    {
        // Axe接口里有个砍的方法
        public String chop();
    }
    package org.crazyit.app.service;
    
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public interface Person
    {
        // 定义一个使用斧子的方法
        public void useAxe();
    }
  • 相关阅读:
    SQL SERVER 查询性能优化——分析事务与锁(一)
    SQL Server 查询性能优化——索引与SARG(三)
    SQL Server 查询性能优化——索引与SARG(二)
    SQL SERVER的锁机制(四)——概述(各种事务隔离级别发生的影响)
    SQL SERVER的锁机制(一)——概述(锁的种类与范围)
    SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)
    关于AutoResetEvent的使用
    ASP.NET缓存
    Spring Framework 3.2.1 发布
    ExactImage 0.8.8 发布,C++ 图像处理库
  • 原文地址:https://www.cnblogs.com/tszr/p/12370304.html
Copyright © 2020-2023  润新知