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

Spring

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

Spring

Spring是一个轻量级的、非入侵式的框架!(开源、免费)

控制反转(IOC),面向切面编程(AOP)

支持事务的处理,对框架整合的支持

导包

组成

扩展

Spring Boot   一个快速开发的脚手架

基于SpringBoot可以快速的开发单个微服务       约定大于配置

Spring Cloud  基于SpringBoot实现

IOC理论推导

控制反转IOC是一种设计思想,DI(依赖注入)是实现IOC的一种方法。

在没有IOC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制。

控制反转是一种通过(描述XML或者注解)并通过第三方去生产或获取特定对象的方式。在spring中实现控制反转的时IOC容器,实现方法是依赖注入。

采用XML方式配置Bean的时候,Bean的定义信息是和现实分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注释的形式定义在实现类中,从而达到了零配置的目的。

private UserDao userDao;

//利用set进行动态实现值的注入!
public void setUserDao(UserDao userDao){
    this.userDao=userDao;
}

使用set注入后,不用再去管理对象的创建。系统的耦合性大大降低,可以更加专注的在业务的实现上。这是IOC的原型。

Spring容器在初始化时先读取配置文件,根据配置文件或者元数据创建与组织对象存入容器中,程序使用时再从IOC容器中取出需要的对象。


HelloSpring

创建bean文件



        
        
                
        

测试
public class MyTest {
    public static void main(String[] args) {
        //解析bean文件,生成管理相应的bean对象
        ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
        //现在对象都在spring中的管理了,要使用时,直接去里面取出来就可以。
        //getBean:参数即为spring配置文件中bean的id
        Hello hello = (Hello) context.getBean("hello");
        System.out.println(hello.toString());
    }
}

Hello对象由Spring创建,hello对象的属性是由Spring容器设置的


IOC创建对象的方式

使用无参构造创建对象,默认

使用有参构造创建对象

1.下标赋值
//第一种,下标赋值

        

2.通过类型创建
//第二种,通过类型创建,不推荐使用

        

3.通过参数名设置
//第二种,直接通过参数名来设置

        

总结:在配置文件加载的时候,容器中管理的对象就已经初始化了


Spring配置说明

别名
 
 

Bean的配置


        

Import

一般用于团队开发使用,它可以将多个配置文件,导入合并为一个。

假设现在项目中有多个人开发,这三个人复制不同的类开发,不同的类需要注册在不同的bean中,这时可以利用import将所有人的beans.xml合并为一个总的



使用的时候,直接使用总的配置就可以了


依赖注入

Set方式注入

依赖:bean对象的创建依赖于容器

注入:bean对象中的所有属性,由容器来注入

环境搭建

1.复杂类型

pub1ic class Address {
     private String address;
     pub1ic string getAddress() {
     return address;
     pub1ic void setAddress(String address) {
          this. address = address;
     }
}

2.真实测试对象

pub1ic class Student {
     private String name;
     private Address address;
     private String[] books;
     private List hobbys ;
     private Map card;
     private Set games;
     private String wife;
     private Properties info;
}

3.Beans,XML




        
        
                
        

 

4.测试类

public class MyTest {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
        Student student = (Student ) context.getBean("student");
        System.out.println(student .getAddress());
    }
}

完善后的bean.xml



              
                
        
        
                
                

                
                

                
                
                        
                                红楼梦
                                水浒传
                                西游记
                                三国演义
                        
                

                
                
                        
                                听歌
                                打游戏
                                看电影
                        
                

                
                
                        
                                
                                
                        
                

                
                
                        
                                LOL
                                gupg
                        
                

                
                
                        
                

                
                
                        
                                1239
                                www.dasfdafarf
                                root
                                123456
                        
                
        

其他方式注入







注意:p命名和 c命名空间不能直接使用,需要导入xml约束

xmlns:p="http://www.springframework.org/schema/p"

xmlns:c="http://www.springframework.org/schema/c"

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

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

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