Spring Java配置
Java配置可以完全替代xml配置,也是Spring boot推荐的配置方式。
Java 配置通过@Configuration 和 @Bean 来完成。
1. @Configuration 声明当前类是一个配置类,相当于一个Spring配置的xml文件。
2. @Bean 注解在方法上,声明当前方法返回值是一个Java Bean。
我们在实际开发中的原则:
1. 全局配置使用Java配置(数据库配置,MVC相关配置);
2. 业务配置使用注解配置(业务Bean的配置使用注解配置@Service, @component,@Repository,@Controller)。
实例:
1. 创建一个业务类
package com.cz.javaconfig; /** * Created by Administrator on 2017/5/6. */ public class FunService { public String sayHello(){ return "hello world!"; } }
2. 创建一个消费业务对象类
package com.cz.javaconfig; /** * Created by Administrator on 2017/5/6. */ public class UseUserService { private FunService funService; public void setFunService(FunService funService) { this.funService = funService; } public String sayHelloworld(){ return funService.sayHello(); } }
3. 主角登场,创建一个JAVA配置类
package com.cz.javaconfig; import org.apache.catalina.User; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.jws.soap.SOAPBinding; /** * Java 配置类,代替xml配置文件 * Created by Administrator on 2017/5/6. */ @Configuration public class JavaConfig { @Bean public FunService funService(){ return new FunService(); } @Bean public UseUserService useUserService(){ UseUserService useUserService = new UseUserService(); useUserService.setFunService(this.funService()); return useUserService; } @Bean public UseUserService useUserService(FunService funService){ UseUserService useUserService = new UseUserService(); useUserService.setFunService(funService); return useUserService; } }
4. 运行测试
package com.cz.javaconfig; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import javax.jws.soap.SOAPBinding; /** * Created by Administrator on 2017/5/6. */ public class TestJavaConfig { public static void main(String[] args) { // 启动Spring上下文,并初始化配置文件 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class); UseUserService useUserService = context.getBean(UseUserService.class); System.out.printf(useUserService.sayHelloworld()); } }