• 1.springboot(Xml和JavaConfig的对比)


    Spring 使用 Xml 作为容器配置文件, 在 3.0 以后加入了 JavaConfig. 使用 java 类做配
    置文件使用。
    JavaConfig: 是 Spring 提供的使用 java 类配置容器。 配置 Spring IOC 容器的纯 Java 方法。
    优点:
    1.可以使用面像对象的方式, 一个配置类可以继承配置类,可以重写方法
    2.避免繁琐的 xml 配置
    对比演示
    1.首先创建空项目,创建一个空的maven框架,项目结构如下图

    2.pom.xml文件

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0modelVersion>
    6. <groupId>com.it.springbootgroupId>
    7. <artifactId>001-springboot-preartifactId>
    8. <version>1.0-SNAPSHOTversion>
    9. <dependencies>
    10. <dependency>
    11. <groupId>org.springframeworkgroupId>
    12. <artifactId>spring-contextartifactId>
    13. <version>5.3.1version>
    14. dependency>
    15. <dependency>
    16. <groupId>junitgroupId>
    17. <artifactId>junitartifactId>
    18. <version>4.12version>
    19. dependency>
    20. dependencies>
    21. <build>
    22. <plugins>
    23. <plugin>
    24. <artifactId>maven-compiler-pluginartifactId>
    25. <version>3.5.1version>
    26. <configuration>
    27. <source>1.8source>
    28. <target>1.8target>
    29. <encoding>UTF-8encoding>
    30. configuration>
    31. plugin>
    32. plugins>
    33. build>
    34. project>

    3.如果使用xml配置文件,则需要创建实体类,创建beans.xml配置文件

    Student类

    1. package com.it.springboot.entity;
    2. public class Student {
    3. private String name;
    4. private Integer age;
    5. private String sex;
    6. @Override
    7. public String toString() {
    8. return "Student{" +
    9. "name='" + name + '\'' +
    10. ", age=" + age +
    11. ", sex='" + sex + '\'' +
    12. '}';
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. public Integer getAge() {
    21. return age;
    22. }
    23. public void setAge(Integer age) {
    24. this.age = age;
    25. }
    26. public String getSex() {
    27. return sex;
    28. }
    29. public void setSex(String sex) {
    30. this.sex = sex;
    31. }
    32. }

    beans.xml配置文件

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5. <bean id="myStudent" class="com.it.springboot.entity.Student">
    6. <property name="name" value="张山"/>
    7. <property name="age" value="20"/>
    8. <property name="sex" value="男"/>
    9. bean>
    10. beans>

    MyTest测试文件

     测试结果:

     4.使用JavaConfig配置文件

    SpringConfig类

    1. package com.it.springboot.config;
    2. import com.it.springboot.entity.Student;
    3. import org.springframework.context.annotation.Bean;
    4. import org.springframework.context.annotation.Configuration;
    5. /**
    6. * Configuration:表示当前类作为配置文件使用的,就是配置容器的。
    7. * 位置:在类的上面
    8. * SpringConfig这个类就相当于beans.xml
    9. */
    10. @Configuration
    11. public class SpringConfig {
    12. /**
    13. * 创建方法,方法的返回值是对象。在方法的上面加入@bean
    14. * 方法的返回值对象就注入到容器中。
    15. *
    16. * @Bean:把对象注入到spring容器中,作用相当于
    17. * 位置:方法的上面
    18. *
    19. * 说明:@Bean,不指定对象的名称,默认是方法名的id
    20. */
    21. @Bean
    22. public Student createStudent(){
    23. Student s1=new Student();
    24. s1.setName("李四");
    25. s1.setAge(19);
    26. s1.setSex("女");
    27. return s1;
    28. }
    29. /**
    30. * 指定对象在容器中的名字
    31. * @return
    32. */
    33. @Bean(name = "lisiStudent")
    34. public Student makeStudent(){
    35. Student s2=new Student();
    36. s2.setName("小红");
    37. s2.setAge(22);
    38. s2.setSex("女");
    39. return s2;
    40. }
    41. }

    测试文件

     测试结果

    测试文件

    测试结果

     

  • 相关阅读:
    第十三届蓝桥杯省赛C++B组题解
    阿里二面:SpringCloud 有几种服务调用方式?
    软件明明通过了各种级别的测试,交付给用户仍会出现问题?
    系统服务管理-Systemd
    393页13万字智慧旅游大脑建设方案
    企业级AI大模型如何落地?
    微信公众号如何通过迁移变更主体?
    2022春夏系列 KOREANO ESSENTIAL重塑时装生命力
    ThreadX笔记
    git硬重置(hard reset)重找回
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/126519812