• Spring_HelloWord


    环境:IntelliJ 14 ; jdk1.8

    Spring操作步骤

    1.新建项目---Spring Batch
    
    2.IntelliJ会自动加载jar包
    
    3.现在就可以在src目录下写Java类文件了
    
    4.将相应的类部署在XML配置文件spring-config.xml中 (Eclipse需要手动创建,貌似名为bean.xml)
    
    5.写主程序main (右键-->Run)

    HelloWord小程序

    此处直接从第3步开始

    3.首先定义两个接口,Person和Axe

    public interface Person {
        public void useAxe();
    }
    public interface Axe {
        public String chop();
    }

    然后定义接口的实现类,Chinese和StoneAxe

    public class Chinese implements Person {
        private Axe axe;
        //设值注入
        public void setAxe(Axe axe) {
            this.axe = axe;
        }
    
        @Override
        public void useAxe() {
            System.out.println(axe.chop());
    
        }
    }
    public class StoneAxe implements Axe {
        @Override
        public String chop() {
            return "石斧砍柴好慢";
        }
    }

    4.修改spring-config.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.xsd">
    
           <bean id="chinese" class="org.spring.service.impl.Chinese">
                  <property name="axe" ref="stoneAxe"/>
           </bean>
           <bean id="stoneAxe" class="org.spring.service.impl.StoneAxe"/>
    </beans>

    5.写主程序main

    public class SpringTest {
        public static void main(String[] args){
            ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");
            Person p = (Person) ctx.getBean("chinese", Person.class);
            p.useAxe();
        }
    }

    程序到此结束,运行结果为:

    石斧砍柴好慢

    Spring的核心机制:依赖注入(Dependency Inhection)(控制反转IoC—Inversion of Control)

    依赖注入通常包括以下两种:

    设值注入:使用属性的setter方法来注入被依赖的实例

    构造注入:使用构造器来注入被依赖的实例

    请看下面的例子

    public class Chinese implements Person {
        private Axe axe;
    
       //设值注入
        public void setAxe(Axe axe) {
            this.axe = axe;
        }
    
        //构造注入
        public Chinese(Axe axe) {
            this.axe = axe;
        }
    
        @Override
        public void useAxe() {
            System.out.println(axe.chop());
    
        }
    }

    不同的注入方式在配置文件中的配置也不一样

    <!--设值注入-->
    <bean id="chinese" class="org.spring.service.impl.Chinese">
    	<property name="axe" ref="steelAxe"/>
    </bean>
    <!--构造注入-->
    <bean id="chinese" class="org.spring.service.impl.Chinese">
    	<constructor-arg ref="stoneAxe"/>
    </bean>

    建议采用以设值注入为主,构造注入为辅的注入策略。对于依赖关系无需变化的注入,尽量采用构造注入;而其他的依赖关系的注入,则考虑使用设值注入。

    Spring的两个核心接口Spring容器最基本的接口是BeanFactory。它有一个子接口:ApplicationContext。

    ApplicationContext有两个常用的实现类:

    FileSystemXmlApplicationContext:以基于文件系统的XML配置文件创建实例
    ClassPathXmlApplicationContext:以类加载路径下的XML配置文件创建实例
  • 相关阅读:
    【自制操作系统03】读取硬盘中的数据
    【自制操作系统02】环境准备与启动区实现
    【自制操作系统01】硬核讲解计算机的启动过程
    【30天自制操作系统】day06:中断
    java8 stream ,filter 等功能代替for循环
    如何评估工作量--三点估算
    python 错误AttributeError: 'module' object has no attribute 'AF_INET'
    python入门学习
    mysql5.7.10和mysql5.5.39两个版本对于group by函数的处理差异
    jenkins 构建时,取消构建测试类
  • 原文地址:https://www.cnblogs.com/weilunhui/p/4143668.html
Copyright © 2020-2023  润新知