spring中xml和注解开发的对比

一、spring ioc(控制反转):配置文件xml中管理、创建java对象(bean)

private int age;

复制代码
public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

创建bean对象(在配置文件中交给 Spring IoC 容器 负责创建、管理、依赖注入、销毁的 Java 对象,就叫 Spring Bean):spring ioc容器的java对象称呼bean

通过set注入,并给属性赋值,前提是类中有set方法(也可以通过构造器注入)

cpp 复制代码
<bean id="cat" class="com.Cat">
        <property name="age" value="18"/>
        ..................
</bean>

<bean id="cat" class="com.Dog">

        <property name="age" value="20"/>
        ..................
</bean>


--------------------------------------------

由此可知,所有的java类交由spring ioc(控制反转)容器管理的java对象,可以通过生成bean来手动配置。

优点:

1、配置和业务逻辑完全分离,运维人员改配置不用动代码、不用重新编译。

2、方便拆分 xml(开发 / 测试 / 生产配置分开导入),切换环境只需替换配置文件。

二、spring ioc(控制反转):注解、创建java对象

cpp 复制代码
<context:component-scan base-package="com"/><!--扫描包:作用是自动扫描包,批量生成 Bean-->
php 复制代码
@Service
public class Dog{
    
}

等价:

markup 复制代码
<bean id="cat" class="com.Dog">

        <property name="age" value="20"/>
        ..................
</bean>

spring衍生注解

Component组件等同于

@Component 通用组件注解

@Service、@Controller、@Repository 都是 @Component 的派生注解,统称分层组件

4个注解功能相同,将java类注册到spring ioc容器中中,装配成【bean】

优点:

开发高效、简洁

@Service/@Autowired一行注解搞定,不用大量 xml 标签,代码量大幅减少

可读性强:

打开类直接看到注入的依赖,不用切换配置文件,可读性强

@Controller/@Service/@Repository区分三层架构,代码分层一目了然。

总结:xml配置方式和注解方式两种开发方式各有千秋,不同的项目和场景使用效果业截然不同

相关推荐
龙亘川25 分钟前
铭记英烈守初心,数字强基促服务:亘川智城退役军人服务系统的实践与价值
java·数据库·人工智能
OxYGC41 分钟前
[AI工程] Spring AI 第廿一篇:存量 REST 接口的 MCP 化改造实录——工具从哪条路径注册、参数描述怎么写、身份怎么过去
java·人工智能·spring
Zhou1411361 小时前
SpringBoot_02_自动配置原理
java·spring boot·后端
FYKJ_20101 小时前
SSM校园失物招领系统41452-计算机课程设计、毕业设计
java·vue.js·spring boot·python·mysql·typescript·spark
kv1101 小时前
Android studio国内开发有关
java·数据库·android studio
卓怡学长2 小时前
w198基于springboot始于足下健康打卡平台的设计与实现
java·spring boot·spring·intellij-idea
阿狗童鞋2 小时前
Java并发编程实战指南
java·开发语言
Joe_Wang52 小时前
【从0到1学习JVM · 15】对象在堆里来回倒腾,究竟怎样才会进老年代?
java·jvm·学习·垃圾回收
一条小小yu2 小时前
为什么使用springboot
java·spring boot·后端
Elastic 中国社区官方博客3 小时前
Kubernetes attributes processor v1:它对 EDOT Collector 意味着什么
java·大数据·elasticsearch·搜索引擎·贪心算法·kubernetes·全文检索