SSM——Spring入门学习(Spring基本知识)



Spring 的介绍:

图片引用于快速掌握Spring核心应用

一、对于 Spring 的认识,记住如下几点:

  • Spring 是开源轻量级框架。说它开源,证明其免费,个人认为这也是 Spring 可以风靡的原因所在;
  • Spring 的核心有两部分,分别为:
    (1)Aop面向切面编程;通俗的讲就是扩展功能不是通过修改源代码实现,而是通过修改相关配置文件完成;
    (2)Ioc控制反转;通俗的讲比如有一个类,在类里面有个方法(这个方法不是 static 修饰的静态的方法),此时调用该类里面的方法。需要创建此类的对象,在使用对象调用方法,创建对象的过程,需要 new 出来 ,把创建对象的过程不是通过 new 方式实现,而是交给 Spring 配置创建对象,就叫做控制反转;
  • Spring 还是一个一站式框架 ;一站式的含义是说 Spring 在 JAVAEE 的三层结构中,对每一层都提供了不同的解决技术;对应关系如下: web 层:SpringMVC service 层:Spring 的 IOC dao 层:Spring 的 jdbcTemplate

二、Spring的官方网址

  • spring官网首页:https://spring.io/
  • spring-framework API 文档官方地址:
    https://docs.spring.io/spring/docs/current/spring-framework-reference/
  • spring版本下载地址:https://repo.spring.io/release/org/springframework/spring/
  • spring版本lib下载地址:
    https://repo.spring.io/libs-release-local/org/springframework/spring/
  • Apache Commons Logging组件下载地址:
    http://commons.apache.org/proper/commons-logging/download_logging.cgi

三、Spring的特点

  • 提供了展现层 SpringMVC
  • 持久层 Spring JDBC
  • 还能整合开源世界众多著名的第三方框架和类库
  • 业务层事务管理 AOP
  • 方便解耦,简化开发 IOC
  • Java源码是经典学习范例
    逐渐成为使用最多的 Java EE 企业应用开源框架

四、Spring的架构

  • (1)Test :用于测试使用
  • (2)Core container:核心容器,就是用于装Java Bean对象
  • (3)AOP:切面编程
  • (4)Aspects:提供了与AspectJ的集成
  • (5)Data access:数据访问。用于访问操作我们的数据库。支持持久层的操作。jdbcTemplate mybatis
  • (6)Web:用于支持数据展示层,支持http请求
  • (7)Transactions:用于支持事物处理。用于解决业务层的事物处理问题。 编程式事务管理和声明式事务管理.

在这里插入图片描述

五、Spring的生命周期

  • (1)生命周期
    创建方法init
    销毁方法destory
    普通方法service
  • (2)属性
    init-method 当该对象初始化的时候该方法会自动执行
    destroy-method 当该对象即将销毁的时候会自动调用该方法
  • (3)测试
    context.close()关闭容器
public class Person{
    
    
   public void init(){
    
    
        System.out.println("哇哇...");
    }
    public void eat(){
    
    
        System.out.println("吃食堂...");
    }
    public void destory(){
    
    
        System.out.println("呜呜...");
    }
}
 <bean id="person6" class="com.wzx.domain.Person"
          init-method="init"
          destroy-method="destory"
    />
<br>

六、Spring依赖注入-DI-set方法

  • (1)什么是依赖注入
    DI (dependency injection) 依赖注入
    含义:就是给对象的属性设置值.
    就是给对象的属性设置值
    set方法给对象设置值
    构造方法给对象初始化的时候设置值.
  • (2)property标签
    set方式设置属性(掌握)
    让spring调set方法,前提条件类中必须有set方法

name : 代表的是set方法去掉set,首字母小写setName Name name
value: 基本类型或字符串类型的值,具体给属性设置用的
ref (引用) : 引用对象的id,作为一个对象类型注入
在这里插入图片描述

七、Spring依赖注入-给复杂类型注入

  • (1)什么是复杂类型?
    简单的是基本类型与字符串
    Aarry 数组 List 集合 Map集合 Set集合 Properties集合
  • (2)如何给这些属性设置值
    使用对应的子标签

array,list,map,set,props

  //集合类型属于复杂类型
    private String[] arr; //女朋友们
    public void setArr(String[] arr) {
    
    
        this.arr = arr;
    }

    public String[] getArr() {
    
    
        return arr;
    }

    //List
    private List<String> list;//前女朋友们
    public void setList(List<String> list) {
    
    
        this.list = list;
    }

    //set
    private Set<String> set;//前女朋友们
    public void setSet(Set<String> set) {
    
    
        this.set = set;
    }

    //map
    private Map<String,String> map;//前女朋友们
    public void setMap(Map<String, String> map) {
    
    
        this.map = map;
    }

    //properties
    private Properties properties;//前女朋友们
    public void setProperties(Properties properties) {
    
    
        this.properties = properties;
    }

 <bean id="person7"
          class="com.wzx.domain.Person">
        <property name="name" value="jack"/>
        <property name="arr">
            <array>
                <value >rose</value>
                <value >rose</value>
                <value >rose</value>
            </array>
        </property>
        <property name="list">
            <list>
                <value >rose1</value>
                <value >rose2</value>
                <value >rose3</value>
            </list>
        </property>
        <property name="set">
            <set>
                <value >rose</value>
                <value >rose</value>
                <value >rose3</value>
            </set>
        </property>
        <property name="map">
            <map>
               <entry key="10010" value="rose1"/>
               <entry key="10086" value="rose2"/>
               <entry key="110" value="rose3"/>
            </map>
        </property>
        <property name="properties">
            <props>
                <prop key="10010">rose1</prop>
                <prop key="10086">rose2</prop>
                <prop key="110">rose3</prop>
            </props>
        </property>
    </bean>

猜你喜欢

转载自blog.csdn.net/qq_41209886/article/details/109015270
今日推荐