用一个极简的Spring Demo开始记录2018年的满血转身

这是使用CSDN新账号写下的第一篇文章。

多年的管理工作,渐渐忘记了技术研发的快感。产业最近发掘的新方向,对自己来说也是一次难得的转身,于是在2018年的春节,终于下定决心逃离“舒适区”。一大把年纪,这次选择着实带来了不小的压力。为了延续职业生涯,也为了发自内心的快乐,80后IT老飞侠满血复活。

================下面是正文,不再感慨和废话===================

Spring对很多人来说早已不是新技术,但由于业务领域不同,对我来说却足以带来很多兴奋感。今天以一个极简的Demo开始记录2018年的满血转身。

Spring Framework有两个关键的概念:

1)依赖注入(Dependency Injection):通过配置或注解方式,委托Spring Framework进行对象管理,是IoC的一种实现方式。

2)面向切面(Aspect Oriented Programming):通过配置或注解的方式,将分散到应用各处的行为放到可重用的模块中,减少代码冗余。

这是一个使用Spring Framework,通过XML配置进行依赖注入的极简Demo。

Demo包含1个接口和2个类,它们的关系如下图所示:


HelloSpring Interface代码如下:

package com.study.spring;

public interface HelloSpring {
    public String sayHello();
}
HelloSpringImpl Class代码如下:
package com.study.spring;

public class HelloSpringImpl implements HelloSpring{
    public String sayHello() {
    	return "Hello Spring";
    }
}

Main Class代码如下:

package com.study.spring;

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
	public static void main(String[] args) {
		
		//Create IoC container through XML
		ApplicationContext apc = new ClassPathXmlApplicationContext("HelloSpring.xml");  
        
		//A HelloSpringImpl instance injected 
		HelloSpring hello = apc.getBean("helloSpring", HelloSpring.class);  
        
		System.out.println(hello.sayHello());
	}

}
HelloSpring 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-3.0.xsd">  
    
    <bean id="helloSpring" class="com.study.spring.HelloSpringImpl"></bean>  
  
</beans> 

在XML文件中,配置了一个ID为“helloSpring”的Bean,其类定义是“HelloSpringImpl”。在Main中,创建一个容器来保存Spring Framework创建的Bean实例,并通过“getBean()”方法获取对象引用。在整个过程中,“HelloSpringImpl”对象的创建完全由Spring Framework负责,业务代码只负责使用即可,这就是最简单的IoC过程。

运行Main结果如下,欣喜的打印出“Hello Spring”:

3月 06, 2018 7:57:55 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@7fac631b: startup date [Tue Mar 06 19:57:55 CST 2018]; root of context hierarchy
3月 06, 2018 7:57:55 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [HelloSpring.xml]
Hello Spring
有趣的旅程刚刚开始,晚安
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值