1. 程式人生 > >Spring 使用javaconfig配置

Spring 使用javaconfig配置

9.png ges per get ado 以及 hup contex http

除了使用xml,spring提供javaconfig配置,下面是簡單的例子:

1.聲明接口

/**
 * 
 */
package com.junge.demo.spring.service;

/**
 * 表演
 * @author Administrator
 *
 */
public interface IPerface {

    void play();
}

2.添加實現類

/**
 * 
 */
package com.junge.demo.spring.service.impl;

import org.springframework.stereotype.Service;

import com.junge.demo.spring.service.IPerface; /** * 武術表演 * @author Administrator * */ @Service public class WushuPerface implements IPerface { /* (non-Javadoc) * @see com.junge.demo.spring.service.IPerface#play() */ @Override public void play() { System.out.println("武術表演"); } }

3.添加javaconfig配置類,和服務接口在同一級

/**
 * 
 */
package com.junge.demo.spring.service;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * 自動裝配配置類
 * @author Administrator
 *
 */
@Configuration
@ComponentScan
public class ServiceConfig {

}

4.運行測試:

/**
 * 
 */
package com.junge.demo.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.junge.demo.spring.service.IPerface;
import com.junge.demo.spring.service.ServiceConfig;

/**
 * @author Administrator
 *
 */
public class ServiceConfigApp {

    private static ApplicationContext applicationContext;

    /**
     * @param args
     */
    public static void main(String[] args) {
        applicationContext = new AnnotationConfigApplicationContext(ServiceConfig.class);
        System.out.println(applicationContext.getBeansOfType(IPerface.class));

    }

}

5.運行結果:

技術分享圖片

6.@Configuration註解說明:默認掃描的是當前包以及子包

技術分享圖片

如上所示:查看@ComponentScan的參數,有basePackages和basePackageClasses,在同一個java類中可以配置不同的掃描基本包:

技術分享圖片

在每一個要掃描的包中添加一個空標記接口,使用basePackageClasses可以把所有的掃描都配置上,使用basePackageClasses比basePackages更友好一點,因為在重構代碼時,配置可以自動修改。

Spring 使用javaconfig配置