栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring

一、Spring简介

           Spring是一个为简化企业级开发而生的开源框架。

           Spring是一个IOC(DI)和AOP容器框架。

        IOC (Inversion of Control) : 反转控制

        DI (Dependency Injection) : 依赖注入 DI是IOC的一种具体实现

        AOP(Aspect-Oriented Programming) :  面向切面编程   

        使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。

优良特性:①非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API。

                  ②控制反转:指的是将对象的创建权交给Spring去创建。使用Spring之前,对象的创建都是由我们自己在代码中new创建。而使用Spring之后。对象的创建都是由给了Spring框架。

                 ③依赖注入:是指依赖的对象不需要手动调用setXXX方法去设置,而是通过配置赋值。

                  ④面向切面编程:在不修改源代码的基础上进行功能扩展。

                  ⑤容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期。

                   ⑥组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。

                    ⑦一站式:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。

2、Spring框架分为五大模块:

        (1)Core container:核心容器

                        Bean提供BeanFactory,它是一个工厂模式的复杂实现

                        Core提供了框架的基本组成部分,包括IOC和DI功能

                        Context建立在由核心和bean模块提供的基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext接口是上下文模块的重点

                        SpEL在运行时提供了查询和操作一个对象的强大的Spring

        (2)AOP&Aspects:提供了面向切面编程的实现

        (3)DataAccess/Integration:提供了对数据访问、集成的功能

        (4)Web:提供了面向Web应用程序的集成功能

        (5)Test:提供了对JUnit或TestNG框架的测试功能

3、HelloSpring

        (1) 创建Java工程,并导入jar包

    
        
        
            org.springframework
            spring-context
            5.3.1
        
        
        
            junit
            junit
            4.12
            test
        
    

        (2)新建Student【测试类】

        (3)创建Spring核心配置文件【applicationContext.xml或beans.xml】

                        位置:resources目录下

                        将Student类装配到Spring容器中

       (4)创建Spring容器对象【ClassPathXmlApplicationContext】

ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");

         (5) 通过容器获取Student对象  

Student zzq = context.getBean("zzq", Student.class);
        System.out.println("zzq = " + zzq);

4、getBean三种方式

 ①getBean(String id):从spring容器中,通过id获取对象

不足:默认获取对象类型是Object,需要强转,比较繁琐

②getBean(Class clazz):从spring容器中,通过Class获取对象

   不足:当容器中有多个相同Class对象时,会报如下错误:

     expected single matching bean but found 2: ltq,zzq

 ③getBean(String id,Class clazz):从spring容器中,通过id和Class获取对象

    建议使用

5、Spring依赖注入三种方式

 ①set注入

    

        
        
    

②构造器注入


    
    

③p名称空间注入 xmlns:p="http://www.springframework.org/schema/p"

   本质还是set注入

    
        
        
        
        
        

    

 (2)特殊字符    使用CDATA区    < ! [CDATA[ ] ] >

   (3)外部已声明bean    ref

    
        
        
        
    
    
        
        
        
        
        
        
    

 (4)级联属性赋值

    
        
        
        
    
    
        
        
        
        
        
        

        
    

如更改级联属性值时,管理bean中属性也同时被更改【级联对象与原对象,是同一个对象】

 (5)内部bean

    
        
        
        
        
        
        
            
                
                
                
            
        
    

 8、Spring装配第三方bean

  ①导入jar包


    com.alibaba
    druid
    1.1.10



    mysql
    mysql-connector-java
    5.1.37

 ②编写db.properties文件

#key=value
jdbc.username=root
jdbc.password=root
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.initialSize=5
jdbc.maxActive=10

 ③编写applicationContext.xml文件

  • 加载属性文件【db.properties】

  • 装配DruidDataSource数据源

    
    
    
    
        
    
    
        
            
            
            
            
        
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315392.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号