• Spring框架概述


    1、对于框架的简单了解(framework

    框架:具有约束性的去支撑我们完成功能的半成品的项目。

    约束性:定义的一些标准;

    支撑性:其实就是对底层各种功能技术的封装;

    半成品的项目:框架不是一个完整的项目,只是提供一个架子,虽然封装了各种技术,但是缺少业务逻辑。框架+业务逻辑=项目(减少代码量)

    因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

    2、Spring概述

      1) Spring是一个开源框架   
      2) Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
      3) Spring是一个IOC(DI)和AOP容器框架。
      4) Spring的优良特性
         ①   非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API。(轻量级,非侵入性:简单理解就是对原来的技术没有影响,就是封装功能
         ②   依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现。(将我们对 对象的控制权交给程序Spring
         ③   面向切面编程:Aspect Oriented Programming——AOP(是为了对OOP进行补充)
         ④   容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
         ⑤   组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。(Spring所管理的对象,降低耦合)

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

      5)Spring模块

    2、搭建Spring运行时环境

    0)STS下选择Java视图,首先进行preference->workspace->编码设置为UTF-8,JSP Files->编码UTF-8。创建Java Project.

    1) 加入JAR包
      ① Spring自身JAR包:spring-framework-4.0.0.RELEASElibs目录下
        spring-beans-4.0.0.RELEASE.jar
        spring-context-4.0.0.RELE2ASE.jar
        spring-core-4.0.0.RELEASE.jar
        spring-expression-4.0.0.RELEASE.jar
      ② commons-logging-1.1.1.jar
    2) 在Spring Tool Suite工具中通过如下步骤创建Spring的配置文件
       ① File->New->Spring Bean Configuration File
       ② 为文件取名字 例如:applicationContext.xml

    3、Spring使用:使用Spring创建对象,为属性赋值
    1) 创建Student类

    package com.atguigu.spring.di;
    
    public class Student {
        private Integer id;
        
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "Student [id=" + id + ", name=" + name + "]";
        }
    
        public Student() {
            super();
        }
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
        
        
    
    }

    2) 创建Spring配置文件

    <?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>:定义spring所管理的一个对象
            id:该对象的唯一标示,注意:不能重复,在通过类型获取bean的过程中可以不设置
            class:此对象所属类的全限定名
         -->
        <bean id="student" class="com.atguigu.spring.di.Student">
        <!-- 使用property子元素为bean的属性赋值 -->
            <!-- 
                <property>:为对象的某个属性赋值
                name:属性名
                value:属性值
             -->
        <property name="id" value="1001"></property>
        <property name="name" value="kkzhang"></property>
        
        </bean>
    
    
    </beans>

    3) 通过Spring的IOC容器创建Student类实例

    package com.atguigu.spring.di;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Test {
    public static void main(String[] args) {
        //1 创建IOC容器对象
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2 根据id值获取bean实例对象
        Student s1 = ac.getBean("student", Student.class);
        //3.打印bean
        System.out.println(s1);
    }
    
    }

  • 相关阅读:
    Kali渗透测试工具-netcat
    信息收集工具-dimtry
    Beef xss神器
    Scapy编写ICMP扫描脚本
    全国职业技能大赛信息安全管理与评估-MySQL弱口令利用
    crawler 听课笔记 碎碎念 2 一些爬虫须知的基本常识和流程
    crawler 听课笔记 碎碎念 3 关于python的细枝末节的回顾复习
    关于互信息(Mutual Information),我有些话要说
    最让人头疼的清洗数据过程----选择合适的方式快速命中所需的数据
    利用小虫虫做一枚合格宅男,果然牡丹花下做鬼也风流
  • 原文地址:https://www.cnblogs.com/lemonzhang/p/12897725.html
Copyright © 2020-2023  润新知