zoukankan      html  css  js  c++  java
  • Spring5学习笔记(二)

    Docker在学了在学了
    接上一篇

    IOC注入方式其二:使用有参构造注入

    Order类

    public class Order {
        private String oname;
    
        private String address;
    
        public Order(String oname,String address){
            this.oname = oname;
            this.address = address;
        }
        public void orderTest(){
            System.out.println("订单名称:"+oname+" 订单地址:"+address);
        }
    }
    

    xml配置文件中需要加入标签

    <bean id="order" class="com.day2.spring5.Order">
        <constructor-arg name="oname" value="电脑"></constructor-arg>
        <constructor-arg name="address" value="China"></constructor-arg>
    </bean>
    

    测试类

    @Test
    public void testOrder(){
        // 1 加载Spring配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("com/day2/spring5/bean1.xml");
        // 2 获取配置创建的对象
        Order order = context.getBean("order",Order.class);
        // 3 输出配置创建的对象
        System.out.println(order);
        order.orderTest();
    }
    /************************/
    输出为:
    
    com.day2.spring5.Order@569cfc36
    
    订单名称:电脑 订单地址:China
    
    

    一些其他属性

    字面量
    1、null值

    <property name="bname">
      <null/>/* 直接用这个标签就好*/
    </property>
    

    2、包含特殊符号的属性

    <property name="bname">
        <value><![CDATA[<<南京>>]]></value>
        /*![CDATA[包含特殊符号的值]*/
    </property>
    

    外部bean的注入

    个人觉得这个最好用
    UserService类

    public class UserService {
        private UserDao userDao;
        private void setUserDao(UserDao userDao){
            this.userDao = userDao;
        }
        public  void add(){
            System.out.println("service......");
        }
    }
    

    UserDao

    public class UserDao {
        public void update(){
            System.out.println("dao update......");
        }
    }
    

    xml配置文件

    <bean id="userDao" class="com.day2.spring5.dao.UserDao"></bean>
    <bean id="userService" class="com.day2.spring5.service.UserService">
        <!--
    		注入UserDao对象
    		name:类里面属性名称
    		ref:创建UserDao对象bean标签的id值
        -->
        <property name="userDao" ref="userDao"></property>
    </bean>
    
    

    级联赋值

    对关系的分析

    • 一对多:部门和员工
    • 在实体类之间的一对多关系
    //部门类
    public class Dept {
        private String dname;
    
        public void setDname(String dname) {
            this.dname = dname;
        }
        public String getDeptName(){
            return this.dname;
        }
    }
    
    //员工类
    public class Emp {
        private String ename;
        private String gender;
        private Dept dept;
    
        public void setEname(String ename) {
            this.ename = ename;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        public void setDept(Dept dept) {
            this.dept = dept;
        }
        public void test(){
            System.out.println("员工名称:"+ename+" 性别:"+gender+" 部门名称:"+dept.getDeptName());
        }
    }
    
    //xml配置文件
    <bean id="emp" class="com.qy.spring5.DeptTest.Emp">
        <property name="ename" value="lucy"></property>
        <property name="gender" value="女"></property>
        <property name="dept">
            <bean id="dep" class="com.day2.spring5.DeptTest.Dept">
                <property name="dname" value="安保部"></property>
            </bean>
        </property>
    </bean>
    
    //测试类
    @Test
    public void testOrder(){
        // 1 加载Spring配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("com/day2/spring5/bean2.xml");
        // 2 获取配置创建的对象
        Emp emp = context.getBean("emp", Emp.class);
        // 3 输出配置创建的对象
        System.out.println(emp);
        emp.test();
    }
    
    //输出结果
    com.qy.spring5.DeptTest.Emp@66d1af89
    
    

    注入属性:级联赋值

    <!--级联赋值-->
    <bean id="emp" class="com.qy.spring5.DeptTest.Emp">
        <!--设置两个普通属性-->
        <property name="ename" value="lucy"></property>
        <property name="gender" value="女"></property>
        <!--级联赋值-->
        <property name="dept" ref="dept"></property>
        <!--dept.name用于设置dept的name,需要给Dept类上添加Dept的get方法-->
        <property name="dept.name" value="技术部"></property>//此处必须实现get方法
    </bean>
    <bean id="dept" class="com.qy.spring5.DeptTest.Dept">
        <property name="dname" value="财务部"></property>
    </bean>
    
    

    今天暂且到这,上班不可以摸鱼...

  • 相关阅读:
    cxGrid 锁定列
    精选网站
    Delphi XE10 dxLayoutControl 控件应用指南
    合并当前工作簿下的所有工作表
    【集中工作薄】 当前文件夹中所有Excel文件中 多个工作簿的第一个工作表 复制到工作簿中
    CxGrid如何实现导出Excel 功能
    Google Material Design的图标字体使用教程
    Mui沉浸模式以及状态栏颜色改变
    移动端弹性效果
    JS中的“!!”
  • 原文地址:https://www.cnblogs.com/Emuaer/p/15088968.html
Copyright © 2011-2022 走看看