- 前面的代码是通过xml类配置各种bean的,但是spring还允许通过java类的方式来配置管理,具体为用@Configuration去修饰一个类,那么这个类就会被spring当作是配置管理的类,再在里面通过@Bean,@Value的注解,会用xml配置的童鞋应该一眼就可以看懂的,看不懂 的就翻以前的博文看吧。
- 程序结构
- 代码
package impl; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration //@Configuration用于修饰一个java配置类 public class Appconfig { @Value("java") String personName; // 这里就相当于是配置了一个名字为personName,值为java的String变量 // 配置一个bean,id为chinese,实现类为person,然后给他赋值,因为这里Axe给的是stoneAxe,所以输出的就是StoneAxe啦 @Bean(name = "chinese") public Person person(){ Chinese p = new Chinese(); p.setAxe(stoneAxe()); p.setName(personName); return p; } // 配置一个bean id为stoneAxe,实现类为StoneAxe @Bean(name = "stoneAxe") public Axe stoneAxe(){ return new StoneAxe(); } // 配置一个bean steelAxe,实现类为steelAxe @Bean(name = "steelAxe") public Axe steelAxe(){ return new SteelAxe(); } }
package impl; public interface Axe { public String chop(); }
package impl; public class Chinese implements Person{ private Axe axe; private String name; void setAxe(Axe axe) { this.axe = axe; } void setName(String name) { this.name = name; } @Override public void useAxe(){ System.out.println("我是" + name + "," +axe.chop()) ; } }
package impl; public interface Person { public void useAxe(); }
package impl; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Springtest { public static void main(String []args){ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Appconfig.class); // 如果是通过java类配置管理的话,就不能使用ClassPathXmlApplicationCOntext方法来获取容器的,那是 // 通过xml配置文件配置的时候才可以的。其他操作就都一样了。 Chinese chinese = applicationContext.getBean("chinese", Chinese.class); chinese.useAxe(); } }
package impl; public class SteelAxe implements Axe { @Override public String chop() { return "SteelAxe"; } }
package impl; public class StoneAxe implements Axe { @Override public String chop() { return "StoneAxe"; } }
这是我看李刚编著的《轻量级javaEE企业应用实战(第五版)-Struts2+Spring5+Hibernate5/JAP2》后总结出来的。
Spring(11) 通过java类配置管理
最新推荐文章于 2023-08-02 16:55:23 发布