Spring简单入门

       最近开始入坑Java EE中的Spring,以前对Spring的了解基本是空白的,现在慢慢有点了解了。Spring是2003年兴起的一个轻量级的Java开源框架,它是为了解决企业应用开发的复杂性而创建的,使用基本的JavaBean来完成以前只可能由EJB完成的事情。

       其整体架构图如下所示:

    

       - Core Container(核心容器)包含有Core、Beans、Context和SpEL模块。其中,Core和Bean模块是框架的基础部分,提供IoC(转控制)和依赖注入特性;Context模块构建于Core和Beans模块之上,提供了一种类似于JNDI注册器的框架式的对象访问方法,ApplicationContext接口是Context模块的关键

       - Data Access/Integration层包含JDBC、ORM等。

       - Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。

 

       下面记录一下使用Spring的第一个demo的步骤:

       1. 开发IDE使用Eclipse For Jave EE developer, 构建工具使用maven,JDK版本为1.8。新建一个maven的项目,在pom.xml文件增加对spring framework的依赖(这里我的eclipse没有安装spring ide插件,直接使用maven的依赖):

   

    2. 新增一个bean:

 

package cn.linjk.testspring;

public class HelloBean {
	private String hello;
	
	public String getHello() {
		return hello;
	}
	
	public void setHello(String hello) {
		this.hello = hello;
	}
}

 

    3. 新增bean.xml文件(存放在路径"src/main/java"下):

 

<?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="helloBean" class="cn.linjk.testspring.HelloBean">  
        <property name="hello" value="test_spring"></property>  
    </bean>  
</beans>  

      这里有一个bean节点,id是提供外部调用,class对应类名加包名,然后再配置它的属性及其对应值。
   

    4. 测试代码:

 

package cn.linjk.testspring;

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

public class App {
	public static void main(String[] args) {
        
		AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");  
        
        HelloBean hello = (HelloBean) ctx.getBean("helloBean");  
        System.out.println(hello.getHello());
        
        ctx.close();
	}
}

      这里使用AbstractApplicationContext加载资源文件,XmlBeanFactory已经弃用了,如果要使用它,写法类似这样:

      BeanFactory bf = new XmlBeanFactory(new ClassPathResource("bean.xml"));

      HelloBean bean = (HelloBean)bf.getBean("helloBean");

      System.out.println(hello.getHello());

      如下所示:

       注意:“ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");”不建议,这种写法占内存,耗资源,如果代码需要连接数据库,很容易造成系统运行缓慢。

 

这里,Spring框架帮我们做了如下几件事:

A. 读取配置文件bean.xml

B. 根据bean.xml中的配置找到对应的类的配置,并实例化

 

核心类:

1. DefaultListableBeanFactory(XmlBeanFactory继承自该类)

    路径: org.springframework.beans.factory.support.DefaultListableBeanFactory,

    DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册及加载bean的默认实现,

2. N/A.

 

 5. 运行结果如下:

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值