zoukankan      html  css  js  c++  java
  • Spring详解(一)

    Spring

    本文参考https://www.cnblogs.com/wmyskxz/p/8820371.html

    了解Spring:

    Spring 的优势

    • 低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦)
    • 声明式事务管理(基于切面和惯例)
    • 方便集成其他框架(如MyBatis、Hibernate)
    • 降低 Java 开发难度
    • Spring 框架中包括了 J2EE 三层的每一层的解决方案(一站式)

    Spring 能帮我们做什么

    ①.Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系
    ②.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
    ③.Spring 能非常简单的帮我们管理数据库事务
    ④.Spring 还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板来方便数据库访问。
    ⑤.Spring 还提供与第三方Web(如Struts1/2、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
    ⑥.Spring 能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)

    Spring 模块

     

    • Data Access/Integration层包含有JDBC、ORM、OXM、JMS和Transaction模块。
    • Web层包含了Web、Web-Servlet、WebSocket、Web-Porlet模块。
    • AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现。
    • Core Container(核心容器):包含有Beans、Core、Context和SpEL模块。
    • Test模块支持使用JUnit和TestNG对Spring组件进行测试。

    Spring  IOC(DI) 控制反转

    IOC(Inversion of Control):其思想是反转资源获取的方向.

    传统的资源查找方式要求组件向容器发起请求查找资源.

    作为回应, 容器适时的返回资源. 而应用了 IOC 之后,

    则是容器主动地将资源推送给它所管理的组件,

    组件所要做的仅是选择一种合适的方式来接受资源.

    这种行为也被称为查找的被动形式

    Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。

    采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中

    编写第一个Spring的程序

    1、首先要导入spring必要的jar包:

    2、加入配置文件

    <?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">
        
        <!--class: 具体的类       id: 标注该标签的-->
        <bean id="mysql" class="com.zhiyou100.zjc.serivce.MysqlDao"/>
        <bean id="oracle" class="com.zhiyou100.zjc.serivce.OracleDao"/>
        <bean id="s" class="com.zhiyou100.zjc.serivce.Serivce">
        <!--name:要和定义的属性名一样  -->
            <property name="dao" ref="oracle"></property>
        </bean>
    
    </beans>

    3、测试

    package com.zhiyou100.zjc.serivce;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //加载sprig配置文件
            ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
            //获取指定的类对象
            Serivce s = (Serivce) ac.getBean("s");
            s.show();
        }
    
    }
  • 相关阅读:
    Java集合框架面试题
    Java:concurrent包下面的Collection接口框架图( CopyOnWriteArraySet, CopyOnWriteArrayList,ConcurrentLinkedQueue,BlockingQueue)
    JDK1.5新特性,基础类库篇,浅谈并发工具包(Concurrency Utilities)
    《Java Concurrency》读书笔记,使用JDK并发包构建程序
    Java:多线程,Exchanger同步器
    Java:多线程,CountDownLatch同步器
    Java:多线程,CyclicBarrier同步器
    Java:多线程,Semaphore同步器
    《Java Concurrency》读书笔记,构建线程安全应用程序
    《Java Concurrency》读书笔记,Java并发编程实践基础
  • 原文地址:https://www.cnblogs.com/zjc364259451/p/11478886.html
Copyright © 2011-2022 走看看