javaee学习第一章

第一章 Spring的基本应用

1.1 SPring概述

  1. Spring的体系结构

    1. Core Container(核心容器)

      • 包括beans、core、context、context-support、SpEL
    2. Data Access/Integration(数据访问/集成)

      • 包括 jdbc、DRM、OXM、JMS、Transaction
    3. Web

      • 包括 WebSocket、Servlet、Web模块、Portlet模块
    4. 其他模块

      • 包括 AOP模块、Aspect模块、Instrumentation模块、Messaging模块、Test模块
  2. Spring的下载及目录结构

    最重要的是导入下面的四个jar包以及一个第三方依赖包

    image-20211130204131262

  3. 第一个Spring程序

    1. 创建一个包com.itheima.ioc,创建接口类UserDao,接口中定义say()方法
    package com.itheima.ioc;
    
    public interface UserDao {
    	
    	public void say();
    }
    
    
    1. 在com.itheima.ioc包下,创建UserDao的实现类UserDaoImpl,用于实现say()方法

      package com.itheima.ioc;
      
      public class UserDaoImpl implements UserDao {
      
      	@Override
      	public void say() {
      		// TODO Auto-generated method stub
      			System.out.println("hello  world!");
      	}
      
      }
      
    2. 在src下创建spring的配置文件,applicationContext.xml文件,并在其中创建id为userDao的Bean

      <?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">
       <!-- 以上信息为配置信息、可在Spring-framework-reference文件夹下的index.html文件中找到 -->   
          
      <bean id ="userDao" class="com.itheima.ioc.UserDaoImpl"/>
      
      </beans>
      
    3. 在com.itheima.ioc包,创建测试类TestIoC,并在其中实现main()方法

      package com.itheima.ioc;
      
      import org.springframework.context.ApplicationContext;
      import org.springframework.context.support.ClassPathXmlApplicationContext;
      
      public class TestIoC {
      	public static void main(String[] args) {
              
      		// 1.初始化spring容器,加载配置文件
      		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
      		
      		// 2.通过容器获取UserDao实例
      		UserDao userDao = (UserDao)applicationContext.getBean("userDao");
              
      		// 3.调用实例中的say()方法
      		userDao.say();
      	}
      }
      
      
    4. 运行成功

      image-20211130205755312

  4. 依赖注入

    • 使用Spring后,对象实例由Spring容器来创建,Spring负责程序之间的关系。【控制反转】

    • Spring容器负责将被依赖的对象赋值给调用者的成员变量,相当于为调用者注入了它依赖的实例【依赖注入】

    • 依赖注入的实现方法:

      • 属性setter方法注入
      • 构造方法注入

实例

  1. 在com.itheima.ioc包中创建接口UserService,并编写一个say()方法

    package com.itheima.ioc;
    
    public interface UserService {
    	public void say();
    }
    
    
  2. 在com.itheima.ioc包中创建UserService的接口实现类UserServiceImpl,在类中声明userDao属性,并添setter方法

    package com.itheima.ioc;
    
    public class UserServiceImpl implements UserService {
    	
    	// 1. 声明UserDao属性
    	private UserDao userDao;
    	@Override
    	
    	// 3. 实现接口中的方法
    	public void say() {
    		// TODO Auto-generated method stub
    		// 4. 调用userDao中的say()方法,并执行输出语句
    		this.userDao.say(); // 输出say方法
    		System.out.println("userService say nihao!!!");
    	}
    	
    	// 2.添加UserDao属性的setter方法,用于实现依赖注入
    	public void setUserDao(UserDao userDao) {
    		this.userDao = userDao;
    	}
    
    }
    
    
  3. 配置文件applicationContext.xml,在其中创建一个id为userService的Bean,用于实例化UserServiceImpl类的信息,将userDao的实例注入到userService中

    <?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">
       
    
    	<!-- 添加id= userService 的 实例 -->
    <bean id ="userService" class = "com.itheima.ioc.UserServiceImpl">
    	<!-- 将id为userDao的Bean实例注入到userService实例中 -->
    	<property name="userDao" ref = "userDao"/>
        
        <!--在这里我们实现了setter方法实现依赖注入,如果想实现构造方法注入,只需要把property 改为 constructor-arg 如下所示-->
        <!-- <constructor-arg name="userDao" ref = "userDao"/> 其他不变-->
    </bean>
    
    
    </beans>
    
  4. 在com.itheima.ioc包中,创建测试类

    package com.itheima.ioc;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class TestDI {
    	public static void main(String[] args) {
    		// 1. 初始化spring 容器,加载配置文件
    		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    		
    		// 2. 通过容器获取UserService实例
    		UserService userService = (UserService) applicationContext.getBean("userService");
    		
    		// 3.调用实例中的say()方法
    		userService.say();
    	}
    }
    
    
  5. 实现结果如下

    image-20211130211541698

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值