Speak.javajava
public interface Speak { void say(); }
ChineseSpeak.javaspring
@Component("chineseSpeak") public class ChineseSpeak implements Speak { public void say() { System.out.println("用中文说"); } }
SpeakConfig.javaspa
@Component @ComponentScan(basePackages = "com.xqh.spring.autowire") public class SpeakConfig { }
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = SpeakConfig.class) public class SpeakTest { @Autowired private Speak speak; @Test public void sayTest(){ speak.say(); } }
@Component注解告诉Spring这是一个组件类并为之建立bean,bean的id为首字母变小写的类名code
@ComponentScan注解启用组件扫描并默认扫描与配置类相同的包component
@Autowired注解会在Spring上下文中在自动装配符合的beanxml
建立配置类并标记 @Configuration注解对象
建立方法标记 @Bean注解it
Speak.java自动化
public interface Speak { void say(); }
ChineseSpeak.javaio
public class ChineseSpeak implements Speak { public void say(){ System.out.println("经过java代码装配-用中文说"); } }
SpeakConfig.java
@Configuration public class SpeakConfig { @Bean public Speak chineseSpeak() { return new ChineseSpeak(); } }
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = SpeakConfig.class) public class SpeakTest { @Autowired private Speak speak; @Test public void sayTest(){ speak.say(); } }
@Configuration标记的类表名是一个配置类而且包含在Spring上下文中如何建立bean的细节
@Bean注解告诉Spring这个方法将返回一个对象而且注册为Spring上下文中的bean
Speak.java
public interface Speak { void say(); }
ChineseSpeak.java
public class ChineseSpeak implements Speak { public void say() { System.out.println("经过xml装配bean-用中文说"); } }
SpeakConfig.java
@Configuration @ImportResource("classpath:spring-beans.xml") public class SpeakConfig { }
spring-beans.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.xsd"> <bean id="chineseSpeak" class="com.xqh.spring.xmlconfig.ChineseSpeak"></bean> </beans>
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = SpeakConfig.class) public class SpeakTest { @Autowired private Speak speak; @Test public void sayTest(){ speak.say(); } }