zoukankan      html  css  js  c++  java
  • Spring IOC创建对象的方式

    使用bean去注册类的好处:

    spring的ioc控制反转、依赖注入,“控制反转”你不需要再代码中关心何时用new创建类的实例。你用的时候spring会创建这个实例,并且注入到你需要使用的地方。
    假如不用spring,你需要在你用到实例的各个地方不停new。交给spring后,你只需要,在代码里直接定义完配置好。用就可以了!

    1. xml头文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
    
      <bean id="..." class="...">
        <!-- collaboretors and configuration for this bean go here -->
      </bean>
     
      <bean id="..." class="...">
        <!-- collaboretors and configuration for this bean go here -->
      </bean>
    </beans>

    头部文件说明:https://blog.csdn.net/tanga842428/article/details/78572708?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242

    https://blog.csdn.net/u012049463/article/details/11807587?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param

    2. 类、bean文件和测试类

    类如下

    package com.XX;
    public class User { private String name;
      //使用无参构造,默认
    public User(){ system.out. println("user的无参构造") } public string getName()( return name; } public void setName(String name){ this name = name; } public void show(){ System.out. println("nane="+name); }

    bean文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
    
      <bean id="user" class="package com.XX.User">
      //id后就是对象起的名字,class就是类全名(路径)
        <property name="name" value="XZY">
        //name就是对应类的属性名字,value就是普通属性之间指定属性值,
      </bean>  
    </beans>

    测试类如下:

    import com.XX.User;
    import org.springframework.context.Applicationcontext;
    import org.springframework.context.support.ClassPathXmlApplicationContext:
    public class MyTest{   public static void main(String(] args)(
      //创建容器对象   ApplicationContext context =
    new ClassPathXmlApplicationContext(configLocation:"beans.xml")   User user = (User) context.getBean( s:"user")   user show ();
      }
    }

    有参构造函数的bean文件写法:

    <!-- 第一种,下标值! -->
    <bean id="user" cLass="com.XX.User">   <constructor-arg index="0" value=”值”/> </bean>

    <!-- 第二种方式:通过类型创建,不建议使用。因为可能有多个参数 -->
    <bean id="user" cLass="com.XX.User">
      
    <constructor-arg type="java.Lang.String" vaLue="值/>
    </bean>


    <!-- 第三种,直按过参数名来设置-->
    <bean id="user" class="com.XX.User">
      <constructor-arg name="name" value="值"/>
    </bean>

     补充bean文件里的配置:

  • 相关阅读:
    Elasticsearch之优化
    前端页面加载速度优化---Ngnix之GZIP压缩
    Nginx的try_files使用详解
    elk6.3.2在线安装中文分词工具IK
    filebeat5与filebeat6配置index的差异
    十分钟部署Anemometer作为Mysql慢查询可视化系统
    虚拟机磁盘逻辑卷扩容
    十分钟搭建和使用ELK日志分析系统
    关于NODEJS性能测试和优缺点总结
    十分钟搭建和使用sonarqube代码质量管理平台
  • 原文地址:https://www.cnblogs.com/xuzhongyin/p/13633551.html
Copyright © 2011-2022 走看看