JavaWeb——Spring的组成

JavaWeb——Spring

  • Spring 是一个开源框架,使用 Ioc(控制反转)和 AOP(面向切面编程)两种先进技术,极大简化了企业级开发的复杂度。

一、Spring 基础

1、Spring 的组成

  • Spring 框架主要由核心模块、Context模块、AOP模块、DAO模块、O/R映射模块、Web模块和MVC模块组成。
  • 核心模块是 Spring 的核心容器,实现了 IoC 模式、Spring 框架的基础功能,其中 BeanFactory 类是核心类,负责管理和配置 JavaBean;通过 Factory 模式实现 Ioc 容器即依赖注入。
  • Context 模块继承了核心类,同时增加了事件处理、国际化、资源装载、透明装载以及数据校验等功能;提供了框架式的 bean 的访问方式和很多企业级的功能,如定时任务调度。
  • Spring 提供了用标准 Java 语言根据 AOP 联盟的 API 编写的 AOP 框架,集成了所有的 AOP 功能,通过事务管理可以将任意 Spring 管理的对象 AOP 化,使应用程序排开 EJB 的复杂性的同时拥有 EJB 的关键功能。
  • DAO 模块提供了 JDBC 的抽象层,简化数据库厂商的异常错误,提供对声明式事务和编程式事务的支持。
  • 该模块提供了对现有 ORM 框架的支持。
  • 该模块建立在 Context 模块的基础之上,提供了 Servlet 监听器的 Context 和 Web 应用的上下文;对现有的 Web 框架如 JSF、Tapestry、Struts 等提供了集成。
  • 建立在 Spring 核心功能之上,拥有 Spring 框架的所有特性,能够适应多种视图、模板技术、国际化和验证服务,实现控制逻辑和业务逻辑清晰地分离。

2、Spring 简单示例

  • 在 Spring 项目的 src 目录里的适当文件夹(beanset)新建一个 JavaBean,代码如下:
    //IntelliJ IDEA
    //Sprin01
    //Student
    //2019/12/21
    // Author:御承扬
    //E-mail:[email protected]
    
    package com.myCode.beanSet;
    
    public class Student {
        private String name;
        private String age;
        private String sex;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAge() {
            return age;
        }
    
        public void setAge(String age) {
            this.age = age;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    }
    
  • 接着在 src 目录下新建一个 applicationContext.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"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean name="student" class="com.myCode.beanSet.Student">
        <property name="name" value="御承扬"/>
        <property name="age" value="21"/>
        <property name="sex" value=""/>
    </bean>
    </beans>
    
  • 最后在 src 目录下新建一个 main 目录,并在 main 目录下新建一个 Manager.java,代码如下:
    //IntelliJ IDEA
    //Sprin01
    //Manager
    //2019/12/21
    // Author:御承扬
    //E-mail:[email protected]
    
    package com.myCode.main;
    
    
    import com.myCode.beanSet.Student;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.core.io.Resource;
    
    public class Manager {
        public static void main(String[] args){
            Resource resource = new ClassPathResource("applicationContext.xml");
            BeanFactory factory = new XmlBeanFactory(resource);
            Student student = (Student) factory.getBean("student");
            System.out.println("学生姓名:"+student.getName());
            System.out.println("学生年龄:"+student.getAge());
            System.out.println("学生性别:"+student.getSex());
        }
    }
    
  • 运行结果如下:
    	1月 11, 2020 4:57:26 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    信息: Loading XML bean definitions from class path resource [applicationContext.xml]
    学生姓名:御承扬
    学生年龄:21
    学生性别:男
    

上一篇
下一篇

发布了146 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42896653/article/details/103645367
今日推荐