Spring:XML和常用注解优缺点对比以及配置项目示例(9)

Spring的使用两种方式

XML配置和注解区别

像之前博主写的博文,想要某一个bean被SpringIOC去管理,使用xml方式去配置注入的。不懂的可以看一下

使用注解的话,将需要被SpringIOC管理的类顶部,添加@Component注解,注解达到的效果和xml配置是一样的

  • 有些公司只用其中一种,也有公司xml 配置与注解配置一起使用

  • 注解的优势:配置简单,维护方便

  • xml的优势:单修改xml时不用改源码,不用重新编译和部署

  • 结论: 看团队开发规范进行选择,没有强调一定用哪个 更多的是xml+注解配合使用,比如spring整合mybatis

注解使用示例

Step1:Service层接口


public interface VideoService {

    int save(Video video);

    Video findById(int id);
}

Step2:ServiceImpl实现类

@Component("videoService")//交给Spreing扫描 将该类实例化Bean加到IOC容器当中 起别名的方式相当于Bean当中的id
//如果没有起别名默认就是类的小写
public class VideoServiceImpl implements VideoService {
    public int save(Video video) {
        System.out.println("保存video");
        return 1;
    }

    public Video findById(int id) {
        System.out.println("根据id查询视频信息");
        return new Video();
    }
}

Step3:main函数测试

之前的xml配置全部注释掉就行了,这里就不上测试结果了,无非就是输出一句话

public class App1 {

    public static void main(String [] args){

        //用于注解上下文
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();

        //指定扫描包 加注解后告诉spring去扫描,对应的包,发现有对应的注解时候就会将对应的类加到SpringIOC容器当中
        context.scan("net.jhclass");

        //完成Spring初始化操作 核心方法
        context.refresh();
        //获取bean对象
        VideoService videoService = (VideoService)context.getBean("videoService");
        videoService.findById(1);
    }
}

常用注解和XML对比

  • 常用注解
    • bean定义
      • xml方式:

            <bean id="video" class="net.jhclass.project.domain.Video">
                <property name="id" value="9"/>
                <property name="title" value="测试Spring注入"/>
            </bean>
        
      • 注解方式:@Component 通用组件 细分: 不同层用不同注解

        ​ @Controller (用于web层)
        ​ @Service (用于service层)
        ​ @Repository (用于dao仓库层)

    • bean取名
      • xml方式:通过id或者name
      • 注解方式:@Component(“XXXX”)
    • bean注入
      • xml方式:通过property标签里的属性

      • 注解方式:类型注入@Autowired 名称注入@Qualifier

    • bean生命周期
      • xml方式:init-method、destroy-method
      • 注解方式:@PostConstruct初始化、@PreDestroy销毁。类中方法上使用
    • bean作用范围
      • xml方式:scope属性
      • 注解方式:@scope(prototype)注解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值