第一章 Spring的核心(1,2节)

第一章 Spring的核心

1.1 总述

Sping的构架如下

 

Core 的核心就是BeanFactory,主要是使Spring成为一个DI容器(Dependency Injection),第二章介绍

 

Contextcore的扩展层,令spring成为一个framework,扩展了BeanFactory的一些功能,入i18n等等。

 

Aop层,在spring中加入aop编程。第四章介绍。

 

JDBCDAO层,数据库方面,总之是程序更少出错,更容易写。第五章介绍

 

ORM整合层,有人喜欢使用一些orm工具来代替直接使用jdbc连接数据库,Spring提供了一个整合的方法。第五章介绍

 

Jmxjava管理扩展,在第12章介绍,号称系统管理的框架,不懂。

 

Java EE Connector APIjca是个整合企业信息系统的东西,没接触过。说是跟jdbc有什么类似之处

 

Spring MVC Framework1314章介绍

 

Portlet MVC Framework,大部分网站是基于网页的,就是每次访问的结果是一章页面完全显示出来。每个页面都有些信息在上面。相反的,基于portlet的程序在一个页面上集成了多个功能模块。提供了一次访问多个应用程序的功能。

Spring对这个也有支持。

 

Spring’s Web层,Spring mvcportlet mvc在加载Spring application context的时候要特别的考虑一下,这层就是为了这点存在的。还包括了一些小功能并且支持整合strutsjsf

 

Remoting,远程调用方面的功能层。第八章。

 

Spring Java message service:集成了jms的功能。第十章。

 

尽管spring包含了很多方面,但最重要的是要认识一点,就是spring避免进行重复的事情。Spring借用了当今很多的apiframework。第五章我们可以看到,Spring不用自己的持久层框架,而是用了其他的,比如直接用jdbciBatisHibernatejpa

 

现在知道了个大概了,开始看看DIaop的工作方式。下面开始一个例子来实践。

 

1.2一个spring的小程序

DIspring里面最基本的东西。但DI到底是什么?从下面的例子就能看到了。这个跟其他的HelloWorld不大一样。

下面是代码

 

 

<? 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-2.0.xsd" >
    
    
< bean  id ="greetingService"  class ="com.springinaction.chapter01.hello.GreetingServiceImpl" >
        
< property  name ="greeting"  value ="Buenos Dias" ></ property >
    
</ bean >

</ beans >

 

package  com.springinaction.chapter01.hello;

import  org.springframework.beans.factory.BeanFactory;
import  org.springframework.beans.factory.xml.XmlBeanFactory;
import  org.springframework.core.io.FileSystemResource;

public   class  HelloApp  {
    
    
    
public static void main(String [] args)throws Exception{
            //be sure of your's hello.xml is in the right directory
            BeanFactory factory 
= new XmlBeanFactory(new FileSystemResource("src/hello.xml"));
        
            GreetingService greetingService 
= (GreetingService)factory.getBean("greetingService");
        
            greetingService.sayGreeting();
        
    }

}

GreetingServiceImpl实际提供了2中注入方式,setter方式和constructor方式。具体看xml配置文件怎么写。

 

 

 

 

package  com.springinaction.chapter01.hello;

public   interface  GreetingService  {
    
void sayGreeting();
}

 

package  com.springinaction.chapter01.hello;

public   class  GreetingServiceImpl  implements  GreetingService  {
    
private String greeting;
    
    
public GreetingServiceImpl() {}

    
public GreetingServiceImpl(String greeting) {
        
this.greeting = greeting;
    }


    
public void sayGreeting() {
        
// TODO Auto-generated method stub
        System.out.println(greeting);
    }

    
    
public void setGreeting(String greeting){
        
this.greeting = greeting;
    }


}

 

Xml文件中,<beans>是根元素,接下来是<bean>,id是类中要调用的对象名称,class是这个类的位置,<property>元素是用来set类中属性值。<property>元素告诉Spring是用调用setXXX()来进行赋值,字符串是Buenos Dias。假如<property>改成了<constructor-arg>,就变成使用构造器来赋值。

HelloApp中,BeanFactory就是一个容器。把hello.xml文件载入到容器中后,main()方法调用BeanFactorygetBean()方法来得到GreetingService的一个实例。有了这个实例,最后调用了sayGreeting()方法。程序最后显示的是“Buenos Dias!”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值