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

本文涉及的产品
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第一种方案的注入到这里结束先了解基础的内容在进行深入。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
Java 数据安全/隐私保护 Spring
Java 中 Spring Boot 框架下的 Email 开发
Java 中 Spring Boot 框架下的 Email 开发
28 2
|
3天前
|
缓存 前端开发 Java
【框架】Spring 框架重点解析
【框架】Spring 框架重点解析
18 0
|
3天前
|
XML Java 数据格式
Spring框架入门:IoC与DI
【5月更文挑战第15天】本文介绍了Spring框架的核心特性——IoC(控制反转)和DI(依赖注入)。IoC通过将对象的创建和依赖关系管理交给容器,实现解耦。DI作为IoC的实现方式,允许外部注入依赖对象。文章讨论了过度依赖容器、配置复杂度等常见问题,并提出通过合理划分配置、使用注解简化管理等解决策略。同时,提醒开发者注意过度依赖注入和循环依赖,建议适度使用构造器注入和避免循环引用。通过代码示例展示了注解实现DI和配置类的使用。掌握IoC和DI能提升应用的灵活性和可维护性,实践中的反思和优化至关重要。
17 4
|
3天前
|
安全 Java Spring
Spring框架中的单例Bean是线程安全的吗?
Spring框架中的单例Bean是线程安全的吗?
10 1
|
3天前
|
前端开发 Java 开发者
【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用
【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用
9 0
|
3天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(下)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
6 0
|
3天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(上)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
5 0
|
3天前
|
XML 前端开发 Java
【JavaEE】深入了解Spring中Bean的可见范围(作用域)以及前世今生(生命周期)
【JavaEE】深入了解Spring中Bean的可见范围(作用域)以及前世今生(生命周期)
6 0
|
3天前
|
存储 缓存 Java
【JavaEE】Spring中注解的方式去获取Bean对象
【JavaEE】Spring中注解的方式去获取Bean对象
3 0
|
3天前
|
存储 Java 对象存储
【JavaEE】Spring中注解的方式去存储Bean对象
【JavaEE】Spring中注解的方式去存储Bean对象
7 0