zoukankan      html  css  js  c++  java
  • Spring配置搭建——Spring学习 day1

    对象准备

    1.导包

    Spring core ,context ,beans ,expression ,aop

    Apache commons logging

    2.写入一个对象

    这边写入User对象

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

    位置任意,建议在src下,配置文件名任意,建议叫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 ">
    <!-- 将User对象交给spring容器管理 -->
    <bean name="user" class="com.littlepage.entity.User">
    </bean>
    </beans>

    4.代码测试

    //1.创建容器对象
     ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
    //2.向容器"要"User对象
    User user = (User)ac.getBean("user");        
    //3.打印User对象 System.out.println(user);

    上述是空参构造方式,还有静态工厂方式,实例工厂等...(仅仅需要了解)

    IOC&DI:

    Inverse Of Control 控制反转

    将我们创建对象的方式反转了

    以前对象创建是由开发人员自己维护,包括依赖关系也是自己注入

    使用了Spring后,创建对象的方式反转了,对象的创建以及依赖关系可以由Spring创建及注入

    从自己创建,变成了转给了程序Spring

    Dependency Injection 依赖注入

    实现IOC思想需要DI支持

    注入方式:

      set方法注入,构造方法注入,属性直接字段注入

    注入类型:

      值类型注入(基本类型),引用类型注入(引用类型)

    配置文件详解Bean

    Bean元素:使用元素描述需要spring容器管理的对象
    name属性:给管理的对象起名,获得对象根据该名称获得对象
    id属性:与name属性一模一样(名称不可重复,不能使用特殊字符)
    结论:建议使用name属性
    scope属性:

      singleton:(默认)单例对象

    验证:<bean name="user" class="com.littlepage.entity.User"></bean>

    public static void main(String[] args) {
            ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
            User user = (User)ac.getBean("user");
            User user2= (User)ac.getBean("user");
            System.out.println(user==user2);
    }

      打印是true

      prototype:多例,每次创建都是新的对象

    验证<bean name="user" class="com.littlepage.entity.User" scope="prototype"></bean>

      运行同样是false

      request:web环境下,对象与request周期一致

      session:与session周期一致

      黄色部分的属性用不到

      

    生命周期属性:

    init-method="init" destory-method="destory"

    需要在实体类添加init和destory的空返回方法

    Spring的分模块配置:

    <import resource="***.xml">导入其他配置文件,分配置文件

    属性注入:

    set方法注入(只需要这个):

    <bean name="user" class="com.littlepage.entity.User">
        <property name="name" value="tom"></property>//值类型
        <property name="age" value="10"></property>
        <property name="car" ref="car"></property>//引用类型
    </bean>
    <bean name="car" class="com.littlepage.entity.Car">
        <property name="name" value="lamborghini"></property>
        <property name="color" value="red"></property>
    </bean>
    </beans>

    构造函数注入、p名称空间注入、spel注入

    (非常用的方法)

  • 相关阅读:
    浅谈如何学好前后端
    MONGDB的使用
    一个css3特效
    axios
    css实现响应式图片及各种效果
    jQuery中.bind() .live() .delegate() .on()的区别
    HTML5 Web 存储
    HTML5中新的语义元素
    html5shiv:用于解决IE9以下版本浏览器对HTML5新增标签不识别,并导致CSS不起作用的问题
    JS移动客户端--触屏滑动事件
  • 原文地址:https://www.cnblogs.com/littlepage/p/10858491.html
Copyright © 2011-2022 走看看