Spring 使用javaconfig配置
阿新 • • 發佈:2018-01-27
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配置