Spring框架在Bean中的管理(第十一课)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Spring框架在Bean中的管理(第十一课)

Spring框架在Bean中的管理(第十一课)案例实操是在Spring框架在Bean中的管理(第十课)中实操内容进行加深理解Spring中的IOC如何管理?

第一部分 非正常的数据类型的实操 Java如何进行的和Spring中Bean管理如何进行的。

public class Student {
    private String name;
    private int age;
    /*非正常的数据类型*/
    private Date birthday;
    public Student() {
    }
 <bean id="sss" class="com.Sping.Entily.Student">
        <property name="name" value="立交四"></property>
        <property name="age" value="21"></property>
        <property name="birthday" ref="date"></property>
    </bean>
    <bean id="date" class="java.util.Date"></bean>
 /*第五个案例非正常的数据类型*/
    @Test
    public void five() {
        /*java代码的方式*/
        Student student = new Student();
        student.setName("少年强则国强");
        student.setAge(21);
        Date date = new Date();
        student.setBirthday(date);
        System.out.println(student.getName() + "===" + student.getBirthday() + "===" + student.getAge());
    }
    @Test
    public  void  two(){
        //加载配置文件
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Student sss=ac.getBean("sss",Student.class);
        System.out.println(sss.getName()+"======="+sss.getAge()+"========"+sss.getBirthday());
    }

第二部分 生日的实操 Java如何进行的和Spring中Bean管理如何进行的。

<!--Date date=new Date();-->
    <!-- <constructor-arg> 构造方法的标签
    type 根据数据变量进行赋值 不建议使用
    index  数组下标
    name  全局变量的名称
    value  基本数据类型赋给的值
    ref 引用数据类型
    demo6
    -->
    <bean id="st" class="com.Sping.Entily.Student">
        <constructor-arg type="java.lang.String" value="效果"></constructor-arg>
        <constructor-arg index="1" value="56"></constructor-arg>
        <constructor-arg name="birthday" ref="date"></constructor-arg>
    </bean>
package com.Sping.Test;
import com.Sping.Entily.Student;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.Date;
public class Demo6 {
    @Test
    public void six(){
        Date date=new Date();
        Student student=new Student("小明",20,date);
        System.out.println(student.getBirthday());
        /*Sping*/
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Student st=ac.getBean("st",Student.class);
        System.out.println(st.getBirthday());
        System.out.println("生日"+st.getBirthday()+"姓名"+st.getName()+"年龄"+st.getAge());
    }
}

第三部分 数组操作 Java如何进行的和Spring中Bean管理如何进行的。

<!--Sping框架数组的方式-->
    <bean id="car" class="com.Sping.Entily.Car">
        <property name="types">
            <array>
                <value>1234567123</value>
                <value>2345678456</value>
                <value>3456789789</value>
                <value>456789101234</value>
                <value>56789101122</value>
            </array>
        </property>
public class Car {
    private  String[] types;
    private List<Integer> prices;
    private Map<String, String>colors;
    private Set<String> utils;
    private Properties properties;
}
 /*数组的方式获得Java代码Sping框架方式获得*/
    @Test
    public  void seven(){
        /*java代码的形式*/
        Car car=new Car();
        /*数组*/
        String[]s={"AAA","BBB","CCC","DDD","EEE"};
        car.setTypes(s);
        System.out.println("=====================数组的方式利用java代码=========================");
        System.out.println(Arrays.toString(car.getTypes()));
        /*加载配置文件*/
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Car car1=ac.getBean("car",Car.class);
        System.out.println("=========================Sping方式获得数据的方式===========================");
        System.out.println(Arrays.toString(car1.getTypes()));
    }

第四部分  List集合操作 Java如何进行的和Spring中Bean管理如何进行的。

<!--list集合方式-->
        <property name="prices">
            <list>
                <value>111111</value>
                <value>22222</value>
                <value>33333</value>
            </list>
        </property>
/*java集合的方式*/
    @Test
    public  void sevena(){
        /*java代码的形式*/
        Car car=new Car();
        List<Integer> p=new ArrayList<>();
        p.add(5);
        p.add(50);
        p.add(500);
        p.add(5000);
        p.add(50000);
        p.add(50000);
        car.setPrices(p);
        car.getPrices().forEach(i-> System.out.println(i));
        System.out.println("=====================List<Integer> p=new ArrayList<>()集合=========================");
        /*Sping框架的方式*/
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Car car2=ac.getBean("car",Car.class);
        car2.getPrices().forEach(i-> System.out.println(i));
    }

第五部分 Set集合操作 Java如何进行的和Spring中Bean管理如何进行的。

    <!--Set集合方式-->
        <property name="utils">
            <set>
                <value>你是我的唯一</value>
                <value>我爱你</value>
                <value>你爱我吗</value>
                <value>YesOrNo</value>
            </set>
        </property>
package com.Sping.Test;
import com.Sping.Entily.Car;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.HashSet;
import java.util.Set;
public class Sping3 {
    @Test
    public  void sevenb(){
        /*java代码的形式*/
        Car car=new Car();
        Set<String> set=new HashSet<>();
        set.add("飞机A");
        set.add("飞机AB");
        set.add("飞机AC");
        set.add("飞机AD");
        car.setUtils(set);
        car.getUtils().forEach(i-> System.out.println(i));
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Car car2=ac.getBean("car",Car.class);
        car2.getUtils().forEach(i-> System.out.println(i));
    }
}

第六部分 Map集合操作 Java如何进行的和Spring中Bean管理如何进行的。

 <!--Map集合的方式-->
        <property name="colors">
            <map>
                <entry key="id" value="1001"></entry>
                <entry key="name" value="张三李四王五"></entry>
                <entry key="age" value="20"></entry>
                <entry key="sex" value="男or女"></entry>
                <entry key="phone" value="17867853452"></entry>
            </map>
        </property>
   /*Map集合的方式*/
    @Test
    public  void sevenc(){
        /*调用对象*/
        /*java代码的形式*/
        Car car=new Car();
        Map<String, String> m =new HashMap<>();
        m.put("AA","aa");
        m.put("AAB","aab");
        m.put("AAC","aac");
        car.setColors(m);
        car.getColors().forEach((k,v)-> System.out.println(k+":"+v));
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Car car2=ac.getBean("car",Car.class);
        car2.getColors().forEach((k,v)-> System.out.println(k+":"+v));
    }

第七部分 数据库操作 在Spring中Bean管理如何进行的。

   <!--数据库的四个参数-->
        <property name="properties">
            <props>
                <prop key="Diver">com.mysql.cj.jdbc.Driver</prop>
                <prop key="url">jdbc:mysql://localhost:3306/car</prop>
                <prop key="username">root</prop>
                <prop key="password">123456</prop>
            </props>
        </property>
    </bean>
 /*数据库连接的四个重要变量*/
    @Test
    public  void sevend(){
        /*调用对象*/
        /*java代码的形式*/
        Car car=new Car();
        /*创建对象*/
        Properties properties=new Properties();
        properties.setProperty("Diver","com.mysql.cj.jdbc.Driver");
        properties.setProperty("url","jdbc:mysql://localhost:3306/car");
        properties.setProperty("username","root");
        properties.setProperty("password","123456");
        car.setProperties(properties);
        car.getProperties().forEach((k,v)-> System.out.println(k+"==========="+v));
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Car car2=ac.getBean("car",Car.class);
        car2.getProperties().forEach((k,v)-> System.out.println(k+":"+v));
    }

第八部分 在Spring中Bean管理如何进行的 指定方法的开始与结束。

package com.Sping.Entily;
/**
 * Servlect
 */
public class Servlect {
    public Servlect(){
        System.out.println("用户在创建Servlect");
    }
    public void init(){
        System.out.println("Servlect正在出生过程中在调用init方法");
    }
    public  void servlectW(){
        System.out.println("Servlect正在运行servlectW事件中");
    }
    public  void destroy(){
        System.out.println("事情以完成任务正在销毁servlect释放servlect内存");
    }
}
 <!--新的知识点介绍 指定方法的开始与结束
     init-method="init"
     destroy-method="destroy"
     -->
    <bean id="servlect" class="com.Sping.Entily.Servlect" init-method="init" destroy-method="destroy"></bean>
package com.Sping.Test;
import com.Sping.Entily.Servlect;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Sping6 {
    @Test
    public  void  eight(){
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Servlect servlect=ac.getBean("servlect",Servlect.class);
        servlect.servlectW();
        /*关闭文件*/
        ((ClassPathXmlApplicationContext) ac).close();
    }
}

第九部分 一个小案例

public class Teacher {
    private  int id;
    private  String name;
    private int phone;
    private  int money;
    private Object date;
}
 <!-- 利用Sping框架将教师信息的方式给对象赋值-->
    <bean id="teacher" class="com.Sping.Entily.Teacher">
        <!--Sping方式的赋值-->
        <property name="id" value="100401"></property>
        <property name="name" value="小王"></property>
        <property name="phone" value="1768976452"></property>
        <property name="money" value="100000"></property>
        <property name="date" value="2000年12月三号"></property>
    </bean>
package com.Sping.TeacherTest;
import com.Sping.Entily.Teacher;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * TeacherTest的作业
 */
public class TeacherTest {
    @Test
  public  void one(){
        System.out.println("java代码的方式对Teacher数据赋值");
        Teacher teacher1=new Teacher();
        teacher1.setId(100520);
        teacher1.setName("王小五");
        teacher1.setPhone(1897654536);
        teacher1.setMoney(1000000);
        teacher1.setDate(2000+"年"+12+"月"+6+"号");
        System.out.println("教师编号"+teacher1.getId()+"===="+
                "教师姓名"+teacher1.getName()+"==="+
                "教师手机号"+teacher1.getPhone()+"===="+
                "教师工资"+teacher1.getMoney()+"=="+
                "教师的出生日期"+teacher1.getDate()
        );
        System.out.println("Sping 框架方式进行对Teacher数据赋值");
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        /*Student stu=ac.getBean("teacher",Student.class);*/
        /*System.out.println(stu.getName()+"-----------"+stu.getAge());*/
        Teacher teacher=ac.getBean("teacher",Teacher.class);
        System.out.println("Sping框架方式对Teacher进行赋值");
        System.out.println("教师编号"+teacher.getId()+"===="+
                "教师姓名"+teacher.getName()+"==="+
                "教师手机号"+teacher.getPhone()+"===="+
                "教师工资"+teacher.getMoney()+"=="+
                "教师的出生日期"+teacher.getDate()
        );
  }
}

SpringIOC第一种方案的注入到这里结束先了解基础的内容在进行深入。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
96 26
|
17天前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
106 29
|
6天前
|
XML Java 开发者
通过springboot框架创建对象(一)
在Spring Boot中,对象创建依赖于Spring框架的核心特性——控制反转(IoC)和依赖注入(DI)。IoC将对象的创建和管理交由Spring应用上下文负责,开发者只需定义依赖关系。DI通过构造函数、setter方法或字段注入实现依赖对象的传递。Spring Boot的自动配置机制基于类路径和配置文件,自动为应用程序配置Spring容器,简化开发过程。Bean的生命周期包括定义扫描、实例化、依赖注入、初始化和销毁回调,均由Spring容器管理。这些特性提高了开发效率并简化了代码维护。
|
1月前
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
|
2月前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
2月前
|
Java 开发者 Spring
理解和解决Spring框架中的事务自调用问题
事务自调用问题是由于 Spring AOP 代理机制引起的,当方法在同一个类内部自调用时,事务注解将失效。通过使用代理对象调用、将事务逻辑分离到不同类中或使用 AspectJ 模式,可以有效解决这一问题。理解和解决这一问题,对于保证 Spring 应用中的事务管理正确性至关重要。掌握这些技巧,可以提高开发效率和代码的健壮性。
127 13
|
2月前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
2月前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
2月前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
73 6
|
2月前
|
XML Java 数据格式
🌱 深入Spring的心脏:Bean配置的艺术与实践 🌟
本文深入探讨了Spring框架中Bean配置的奥秘,从基本概念到XML配置文件的使用,再到静态工厂方式实例化Bean的详细步骤,通过实际代码示例帮助读者更好地理解和应用Spring的Bean配置。希望对你的Spring开发之旅有所助益。
157 3