zoukankan      html  css  js  c++  java
  • Spring 概述

    Spring 概述

    1. 什么是spring?

    Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

    2. 使用Spring框架的好处是什么?

    1、轻量:Spring 是轻量的,基本的版本大约2MB。

    2、控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。

    3、面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。

    4、容器: Spring 包含并管理应用中对象的生命周期和配置。

    5、MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。

    6、事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局(JTA)。

    7、异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

    3.springIOC的底层实现原理

    4.Spring开发所需的JAR包

    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>4.2.4.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>4.2.4.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>4.2.4.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-expression</artifactId>
          <version>4.2.4.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>1.2</version>
        </dependency>
        <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
        </dependency>
      </dependencies>
    

    6.IOC和DI的概念

    IOC:Inverse of Control 反转控制的概念,就是将原本在程序中手动创建的UserService对象的控制权,交给了Spring框架来管理。

    DI:依赖注入的概念,就是在Spring创建这个对象的过程中,将这个对象所依赖的属性注入进去

    public interface UserService {
        public void sayHello();
    }
    
    * * *
    public class UserServiceImpl implements  UserService{
    
        // 添加属性:
        private String name;
    
        public void sayHello() {
            System.out.println("Hello Spring" + name);
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    * * *
    public class SpringDemo1 {
    
        @Test
        /**
         * 传统方式开发
         */
        public void demo1(){
            // UserService userService = new UserServiceImpl();
            UserServiceImpl userService = new UserServiceImpl();
            // 设置属性:
            userService.setName("张三");
            userService.sayHello();
        }
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:p="http://www.springframework.org/schema/p"
           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">
        <!-- UserService的创建权交给了Spring -->
       <bean id="userService" class="com.imooc.ioc.demo1.UserServiceImpl">
    		<!-- 设置属性-->
            <property name="name" value="李四"/>
        </bean>
    
    </beans>
    (applicationContext.xml)
    
  • 相关阅读:
    js拖动窗口 用层模拟可移动的小窗口
    tar命令详解
    linux内核编译过程的最终总结版
    用C#写ASP.NET搜索蜘蛛代码程序
    ID 为 333 的事件被添加到基于 Windows Server 2003 的计算机上的系统日志中的补丁下载地址
    简单实用的C#分词源代码(含词库素材下载)
    CSS截取固定长度字符串
    javascript 常用代码技巧大收集
    C# 特性(Attribute)
    关于iis HTTPERR日志
  • 原文地址:https://www.cnblogs.com/Guard9/p/11100421.html
Copyright © 2011-2022 走看看