zoukankan      html  css  js  c++  java
  • spring framework

    一、框架介绍
    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

    轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

    控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

    面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
    容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

    框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

    二、Spring下载

    https://github.com/spring-projects/spring-framework

    ⑥下载路径 https://repo.spring.io/list/release/org/springframework/spring/

    三、官方文档

    https://docs.spring.io/spring/docs/current/spring-framework-reference/
    spring5 中文文档
    https://www.cntofu.com/book/95/index.html

    四、maven的pom.xml

    ---pom.xml

    4.0.0
    com.jty
    testSpring
    0.0.1-SNAPSHOT
    jar
    testSpring
    http://maven.apache.org

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>



    junit
    junit
    3.8.1
    test

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>5.1.5.RELEASE</version>
       </dependency>
       <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-core</artifactId>
           <version>5.1.5.RELEASE</version>
       </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-beans</artifactId>
           <version>5.1.5.RELEASE</version>
       </dependency>
       <!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-expression</artifactId>
           <version>5.1.5.RELEASE</version>
       </dependency>
       <dependency>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
           <version>1.2</version>
       </dependency>
    

    五、Helloworld入门程序

    ---applicationContext.xml





    ---User.java
    package com.jty.testSpring;
    public class User {
    private String name;

       public User() {
             this.name="测试账号";
             System.out.println("HelloWorld"+name);
       }
    
       public String getName() {
             return name;
       }
       public void setName(String name) {
             this.name = name;
       }
       @Override
       public String toString() {
             return "User [name=" + name + "]";
       }
    

    }

    ---TestUser.java
    package com.jty.testSpring;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    public class TestUser
    {
    public static void main(String []agrs) {
    //获取ioc容器
    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
    User user=applicationContext.getBean(User.class,"user");
    System.out.println("生成用户:"+user);
    }
    }
    总结Summary
    spring 四个核心包+一个依赖包:core、beans、context、expression、commons-logging
    bean标签:

    该id属性是一个标识单个bean定义的字符串。 该class属性定义bean的类型并使用完全限定的类名。 从ioc容器中获取bean ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); User user=applicationContext.getBean(User.class,"user");
  • 相关阅读:
    thinkphp5 tp5 命名空间 报错 Namespace declaration statement has to be the very first statement in the script
    开启 php 错误 提示 php-fpm 重启 nginx 500错误 解决办法 wdlinux lnmp 一键包 php脚本无法解析执行
    js 设置 cookie 定时 弹出层 提示层 下次访问 不再显示 弹窗 getCookie setCookie setTimeout
    php 二维数组 转字符串 implode 方便 mysql in 查询
    nginx 重启 ps -ef|grep nginx kill -HUP 主进程号
    jquery bootstrap help-block input 表单 提示 帮助 信息
    jquery 倒计时 60秒 短信 验证码 js ajax 获取
    jQuery如何获取同一个类标签的所有的值 遍历
    linux下C语言文件操作相关函数
    gcc,gdb用法
  • 原文地址:https://www.cnblogs.com/jinit/p/13818432.html
Copyright © 2011-2022 走看看