Spring的基础配置的四大原则
- 使用POJO进行轻量级和最小侵入式开发
- 通过依赖注入和基于接口编程实现松耦合
- 通过AOP和默认习惯进行声明式编程
- 使用AOP和模板(template)减少模式化代码
声明bean的注解
- @Component组件,没用明确的角色
- @Service在业务逻辑层(service层)使用
- @Repository在数据访问层访问(dao层)使用
- @Controller在展现层(MVC->Spring MVC)使用注入Bean的注解,一般情况下是通用的
- @Autowared:Spring提供的注解
- @Inject: JSR-330提供的注解
- @Resource: JSR-250提供的注解
例子:FunctionService.java
@Service
public class FunctionService {
public String sayHello(String content){
return "Hello "+content;
}
}
UseFunctionService.java
@Service
public class UseFunctionService {
@Autowired
FunctionService functionService;
public String sayHello(String content){
return functionService.sayHello(content);
}
}
DiConfig.java(配置类,作为元数据)
@Configuration
@ComponentScan("com.flexible")//扫描包
public class DiConfig {
}
测试代码
AnnotationConfigApplicationContext configApplicationContext = new AnnotationConfigApplicationContext(DiConfig.class);
UseFunctionService u = configApplicationContext.getBean(UseFunctionService.class);
String test = u.sayHello("test");
System.out.println(test);
执行结果:
Java配置
Java配置是Spring4.x推荐的配置方式,这种配置方式完全可以替代xml配置,Java配置也是SpringBoot推荐的配置方式。从上面的例子可以知道Java配置使用@Configuration和@Bean来实现。@Configuration声明一个类相当于S的xml配置文件,使用@Bean注解在方法上,声明当前方法的返回值做为一个Bean.
使用Java配置和注解配置的原则
全局配置使用Java配置(如数据库的相关配置,MVC香关配置),业务Bean的配置使用注解配置(@Service,@Compoent,@Repository,@Controller)