zoukankan      html  css  js  c++  java
  • Spring--入门

    概述:

    ①Spring是一个开源框架

    ②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。

    ③Spring是一个IOC(DI)和AOP容器框架。

    ④Spring的优良特性

      [1]非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API

      [2]依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现。

      [3]面向切面编程:Aspect Oriented Programming——AOP

      [4]容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期

            [5]组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。

            [6]一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。

    运行环境的搭建:

    引入jar包:

    spring-framework-4.0.0.RELEASElibs目录下

    spring-beans-4.0.0.RELEASE.jar

    spring-context-4.0.0.RELEASE.jar

    spring-core-4.0.0.RELEASE.jar

    spring-expression-4.0.0.RELEASE.jar

    简单例子:

    package com.soyoungboy.bean;
    
    public class Person {
    private String lastName;
    private String firstName;
    private Integer age;
    private String gender;
    
    
    public Person() {
        super();
    }
    public Person(String lastName, String firstName, Integer age, String gender) {
        super();
        this.lastName = lastName;
        this.firstName = firstName;
        this.age = age;
        this.gender = gender;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    @Override
    public String toString() {
        return "Person [lastName=" + lastName + ", firstName=" + firstName + ", age=" + age + ", gender=" + gender + "]";
    }
    
    }

    person.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"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="person" class="com.soyoungboy.bean.Person">
            <property name="lastName" value="wang"></property>
            <property name="firstName" value="fubin"></property>
            <property name="age" value="18"></property>
            <property name="gender" value="man"></property>
    
        </bean>
        
        <!-- p标签 -->
            <bean 
                id="person04"
                class="com.soyoungboy.bean.Person"
                p:age="18"
                p:lastName="Li"
                p:firstName="qiongqiong"
                p:gender="woman"
            >
        </bean>
        <!-- 通过构造器为bean的属性赋值 -->
        <bean 
        id="person05"
        class="com.soyoungboy.bean.Person">
            <constructor-arg name="firstName" value="heng"></constructor-arg>
            <constructor-arg name="lastName" value="luo"></constructor-arg>
            <constructor-arg name="age" value="18"></constructor-arg>
            <constructor-arg name="gender" value="man"></constructor-arg>
        </bean>
    </beans>

    测试类:

    package com.soyoungboy.test;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.soyoungboy.bean.Person;
    
    public class PersonTest {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("person.xml");
    
        @Test
        public void test() {
            Person bean = (Person) applicationContext.getBean("person");
            System.out.println(bean);
        }
    
        @Test
        public void test4() {
            Person person04 = (Person) applicationContext.getBean("person04");
            System.out.println(person04);
        }
    
        /**
         * 通过构造器获取对象内容
         */
        @Test
        public void test5() {
            Person person05 = (Person) applicationContext.getBean("person05");
            System.out.println(person05);
        }
        
        
    }

    运行结果分别是:

    Person [lastName=wang, firstName=fubin, age=18, gender=man]

    Person [lastName=Li, firstName=qiongqiong, age=18, gender=woman]

    Person [lastName=luo, firstName=heng, age=18, gender=man]

  • 相关阅读:
    MySQL 一次非常有意思的SQL优化经历:从30248.271s到0.001s
    Oracle 11g 自动收集统计信息
    C# 获取当前方法的名称空间、类名和方法名称
    C# 数值的隐式转换
    C# using 三种使用方式
    C#、Unity 数据类型的默认值
    Unity for VsCode
    C# Lambda
    git push以后GitHub上文件夹灰色 不可点击
    C#保留小数
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/7341933.html
Copyright © 2011-2022 走看看