XML和注解的优缺点
spring在配置的时候有两种,xml和注解,他们的优缺点分别是
- 注解的优势:配置简单,维护⽅便
- xml的优势:单修改xml时不⽤改源码,不⽤重新编译和部署
结论: 看团队开发规范进⾏选择,没有强调⼀定⽤哪个,更多的是xml+注解配合使⽤,⽐如spring整合mybatis
使用spring注解配置项目
首先把原来的xml文件全部注释掉
在一个bean上加上注解,然后进行调用
@Component
public class VideoServiceImpl implements VideoService
public class AnnotationTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
//扫描包路径,当扫描的类有注解将自动加入到容器
context.scan("cn.junko");
//实例化,里面完成初始化操作
context.refresh();
VideoService videoServiceImpl = (VideoService) context.getBean("videoServiceImpl");
videoServiceImpl.findById(3);
}
}
常用注解
- bean定义
xml⽅式:- 注解⽅式:@Component 通⽤组件
- 细分:
- @Controller (⽤于web层)
- @Service (⽤于service层)
- @Repository (⽤于dao仓库层)
- bean取名
- xml⽅式:通过id或者name
- 注解⽅式:@Component(“XXXX”)
- bean注⼊
- xml⽅式:通过
- 注解⽅式:类型注⼊@Autowired 名称注⼊@Qualifier
- bean⽣命周期
- xml⽅式:init-method、destroy-method
- 注解⽅式:@PostConstruct初始化、@PreDestroy销毁
- bean作⽤范围
- xml⽅式:scope属性
- 注解⽅式:@scope注解
@Configuration和@Bean注解定义第三方bean
注解使用
@Configuration标注在类上,相当于把该类作为spring的xml配置⽂件中的,作⽤为:配置spring容器(应⽤上下⽂)
@bean注解:⽤于告诉⽅法产⽣⼀个Bean对象,然后这个Bean对象交给Spring管理,Spring将会将这个Bean对象放在⾃⼰的IOC容器中
注意点:SpringIOC容器管理⼀个或者多个bean,这些bean都需要在@Configuration注解下进⾏创建
@Configuration
public class AppConfig {
//使⽤@bean注解,表明这个bean交个spring 进⾏管理
// 如果没有指定名称,默认采⽤ ⽅法名 + 第⼀个字⺟⼩写 作为bean的名称
@Bean(name = "videoOrder",initMethod = "init")//initMethod = "init",destroyMethod = ""
@Scope
public VideoOrder videoOrder(){
return new VideoOrder();
}
}