• Spring介绍、搭建、概念、配置、注入


    summarize:

    Spring 管理项目中所有的对象,它是一站式框架,属于容器性质,容器中装什么对象就有什么功能

    IOC:Inverse Of Control    反转控制:

      以前是我们自己new对象,现在让程序自动创建

    DI:注入方式

    1、set 2、构造方法  3、字段注入

    注入类型

      值类型  8大基本数据类型

      引用..   将依赖对象注入

    applicationContext:

    每次容器启动时,就会创建容器中配置的所有对象

    从类路径加载配置文件,ClassPathXMLApplicationContext

    Spring 必须要导的四个包:beans、Context、core、expression 

    Spring搭建:

    1.先导包

    2.创建对象

    封装、get set toString

    3.写配置,注册对象到容器

    位置任意(建议放到src下)
    配置文件名任意(建议applicationContext.xml)

     

     

    配置 applicationContext.xml 

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
        <bean id="user" class="com.oracle.pojo.User"></bean>
    </beans>

    单元测试

    public class Demo {
    //    单元测试的注解
        @Test
        public void getUser(){
            ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
    //        获取对象  因为得到的是Obj类型 所以要强转
            User user=(User)ac.getBean("user");
        }
    }

     绿色条是正常,如果红色是运行失败

    复杂型注入

    先new个类 QueyrVo

    package com.oracle.pojo;
    
    import java.util.Arrays;
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;
    
    public class QueryVo {
        private String[] arr;
        private List<String> list;
        private Map<String,String> map;
        private Properties pro;    
        public String[] getArr() {
            return arr;
        }
        public void setArr(String[] arr) {
            this.arr = arr;
        }
        public List<String> getList() {
            return list;
        }
        public void setList(List<String> list) {
            this.list = list;
        }
        public Map<String, String> getMap() {
            return map;
        }
        public void setMap(Map<String, String> map) {
            this.map = map;
        }
        public Properties getPro() {
            return pro;
        }
        public void setPro(Properties pro) {
            this.pro = pro;
        }
        @Override
        public String toString() {
            return "QueryVo [arr=" + Arrays.toString(arr) + ", list=" + list + ", map=" + map + ", pro=" + pro + "]";
        }
    }

    数组赋值

        <bean name="query" class="com.oracle.pojo.QueryVo">
        <!-- 数组赋值 -->
            <property name="arr">
                <array>
                    <value>张三</value>
                    <value>张2</value>
                </array>
            </property>        
        </bean>

    测试

    public class Demo {
    //    单元测试的注解
        @Test
        public void getUser(){
            ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
    //        获取对象  因为得到的是Obj类型 所以要强转
    //        单列对象
            User user=(User)ac.getBean("user1");
            System.out.println(user);
            QueryVo vo=(QueryVo)ac.getBean("query");
            System.out.println(vo);
        }
    }

    .

  • 相关阅读:
    Win10 VS2013 PCL1.8.1和依赖项VTK8.0.1, QHuall(2.15.2), FLANN1.9.1,Boost1.59.0,Zbil1.2.11和libPNG1.6.34编译安装
    Boost log中的几个问题
    Linux 使用静态库注意事项
    Windows中lib和DLL区别和使用
    CMake: ELF文件加载动态库的位置
    CMake 默认编译、链接选项
    ld 链接选项-L,-rpath-link,-rpath
    动态库的链接和链接选项-L,-rpath-link,-rpath
    Linux共享对象之编译参数 -fPIC
    ny509 因子和阶乘
  • 原文地址:https://www.cnblogs.com/zs0322/p/11310599.html
Copyright © 2020-2023  润新知