# 第一周研究所(后端)学习感悟[TOC]

本文介绍了如何使用基本Spring配置文件创建对象,实现依赖注入,配置数据源和JdbcTemplate,以及在三层架构中集成。重点讲解了控制反转、依赖注入和AOP的概念,以及Spring配置文件和注解方式的区别。
摘要由CSDN通过智能技术生成

目录

1.基本Spring配置文件的方式创建对象

2.基本Spring配置文件的方式实现依赖注入

3.基本Spring配置文件的方式搭建架构查询数据(XML)

4.基本Spring注解方式搭建架构查询数据


1.基本Spring配置文件的方式创建对象

简单理解:基本Spring配置文件是指使用XML文件来定义Spring容器中的bean对象(由spring容器创建)。通俗点讲,它就像是一张清单,列出了你想在程序中使用的各种对象,并告诉Spring如何创建和配置这些对象。

  1. 深入理解 spring框架 : Spring是分层的Java SE/EE应用轻量级开源框架。以loC ( Inverse Of Control :反转控制)和AOP ( Aspect Oriented Programming :面向切面编程)为内核

    控制反转(IOC)是一种设计原则,它将对象之间的依赖关系从硬编码的方式变为通过配置文件进行管理,从而降低了代码的耦合度。在Spring容器中,Spring容器利用工厂模式(BeanFactory)为我们创建了所需要的对象,使用时无须自己创建,直接调用Spring为我们创建的对象即可。这种控制反转的思想简化了对对象的管理,交给了Spring管理,程序员不用再自己创建对象,需要时直接从Spring中取。由主动创建对象变成了被动接收对象,控制权反转,减轻了程序员的代码量,提高了开发效率。

    面向切面编程(AOP)是另一种编程范式,它可以让开发者在程序中定义跨多个对象的横切关注点,例如日志记录、事务管理等。

    Spring框架还提供了依赖注入(DI)功能,这是实现控制反转的一种方式。Spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入。因此,可以说Spring框架的核心是控制反转、依赖注入和面向切面编程。

  2. 通过Spring配置文件,我们可以指定要创建的对象的类名和属性值。这意味着我们可以轻松地修改和管理对象的行为,而无需修改程序逻辑。我们可以在配置文件中指定对象的依赖关系,并使用Spring的依赖注入机制将它们注入到其他对象中。这使得对象之间的解耦和灵活性得以实现,因为对象之间的依赖关系可以通过配置文件进行修改和管理,而无需修改程序代码。

  3. 步骤:

    • 创建maven:项目管理的工具,对java项目进行依赖管理和项目构建,通过xml的方式对jar包进行统一管理。在电脑设置里要配置好jdk和maven的环境!

    • 导入Spring开发基本包坐标

    • 创建实体类

    • 创建一个Spring配置文件,将其命名为applicationContext.xml,并设置类的属性值,可以配置destroy-method属性,指定类中销毁方法名称。

    • 创建测试类(创建spring容器实例,从容器中获取创建的对象,打印对象的属性值)

    @Test
    public void call() {
        ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
        HuaWeiPhone huaWeiPhone = (HuaWeiPhone)cxt.getBean("huaWeiPhone");
        huaWeiPhone.call();
    }

2.基本Spring配置文件的方式实现依赖注入

  1. 使用不同方式实现依赖注入、通过Spring配置文件注入不同数据类型

    • Bean依赖注入的数据类型(普通)

      • 普通数据类型

      • 引用数据类型

      • 集合数据类型

    • Bean的依赖注入方式:

      • 构造方法注入

      • 最为常用:set方法注入(p命名空间注入本质也是set注入)

  2. 步骤

    • 搭建maven项目

    • 创建接口和实现类

    • set方法注入:

      private PhoneDao phoneDao;
      ​
      public void setPhoneDao(PhoneDao phoneDao) {
          this.phoneDao = phoneDao;
      }
      • 配置文件applicationContext.xml的根标签中添加以下配置:

      • 创建测试类(ctrl+shift+T)

      package com.cqgcxy.service.impl;
      ​
      import com.cqgcxy.service.PhoneService;
      import org.junit.Test;
      import org.springframework.context.ApplicationContext;
      import org.springframework.context.support.ClassPathXmlApplicationContext;
      ​
      public class PhoneServiceImplTest {
      @Test
      public void getPhonesTest() {
          ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
          PhoneService phoneService = (PhoneServiceImpl)cxt.getBean("phoneService");
          phoneService.getPhones();
      }
      }

    • 构造器方式注入:

      • 创建对象

      • 创建Bean类,添加构造方法,传入依赖的对象

      • spring配置文件

3.基本Spring配置文件的方式搭建架构查询数据(XML)

使用Spring配置文件的方式配置Druid数据源、配置使用JdbcTemplate从数据库中查询数据、使用Spring配置方式搭建三层架构之间依赖。

  1. 理解数据源:获取数据的接口,通常包括数据库、API、Web服务、硬件设备等多种形式

  2. 掌握使用Spring配置文件的方式配置常用数据源

    • 创建数据库

    • 添加依赖

    • 配置文件中创建配置

      jdbc.driver=com.mysql.cj.jdbc.Driver
      jdbc.url=jdbc:mysql:///gcxy_teach?serverTimezone=Asia/Shanghai&characterEncoding=utf-8
      jdbc.username=root
      jdbc.password=123456

    • 创建核心配置文件,配置数据源

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:context="http://www.springframework.org/schema/context"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
      ​
          <context:property-placeholder location="classpath*:jdbc.properties"/>
      ​
          <!-- 配置数据库连接信息 -->
          <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
              <property name="driverClassName" value="${jdbc.driver}"/>
              <property name="url" value="${jdbc.url}"/>
              <property name="username" value="${jdbc.username}"/>
              <property name="password" value="${jdbc.password}"/>
          </bean>

    • 创建测试类,创建容器

      public class DataSourceTest {
      ​
          @Test
          public void testDataSource() throws SQLException {
              ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
              DataSource dataSource = cxt.getBean(DataSource.class);
              Connection connection = dataSource.getConnection();
              System.out.println(connection);
              connection.close();
          }
      }

    如果需要查询数据库中的数据需要创建实体类,配置JdbcTemplate到spring容器中

  3. 三层架构

    • dao接口、dao实现类(jdbcTemplate)

    • service接口,service实现类(dao)

    • controller (service)

    • 容器中配置dao(jdbcTemplate),service(dao),controller(service)

          <!--    配置JdbcTemplate和PhoneDao之间的依赖关系-->
             <bean id="phoneDao" class="com.cqgcxy.dao.impl.PhoneDaoImpl">
                 <property name="jdbcTemplate" ref="jt"></property>
             </bean>
             <!--    配置PhoneDao和PhoneService之间的依赖关系-->
             <bean id="phoneService" class="com.cqgcxy.service.impl.PhoneServiceImpl">
                 <property name="phoneDao" ref="phoneDao"></property>
             </bean>
             <!--    配置PhoneService和PhoneController之间的依赖关系-->
             <bean id="phoneController" class="com.cqgcxy.controller.PhoneController">
              <property name="phoneService" ref="phoneService"></property>
             </bean>

    • 测试(创建容器,问容器要,调用方法)

4.基本Spring注解方式搭建架构查询数据

  1. 常用注解

    注解说明
    @Component使用在类上用于实例化Bean
    @Controller使用在web层类上用于实例化Bean
    @Service使用在service层类上用于实例化Bean
    @Repository使用在dao层类上用于实例化Bean
    @Autowired使用在字段上用于根据类型依赖注入
    @Configuration用于指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解
    @ComponentScan用于指定Spring在初始化容器时要扫描的包。 作用和在Spring的xml配置文件中的<context:component-scan base-package=“cn.edu.cqie”/>一样
    @Bean使用在方法上,标注将该方法的返回值存储到Spring容器中
    @PropertySource用于加载.properties文件中的配置
    @Import用于导入其他配置类

    Bean标签更多的是别人写好的 component用于自己写好的类。 在配置类里面配别人写好的 在三层架构写自己需要的对象 最后再进行调用

  2. 步骤

    • 创建数据库

    • 创建配置类(@configuration @propertysource)

      package com.cqgcxy.config;
      ​
      import org.springframework.context.annotation.Configuration;
      import org.springframework.context.annotation.PropertySource;
      ​
      @Configuration
      @PropertySource("classpath:jdbc.properties")
      public class SpringConfiguration {
      }

    • 配置类中配置数据源对象(@bean @value)

    • 编写测试类

      如果要查询数据库中的数据就要创建实体类,使用@Bean标签配置JdbcTemplate到spring容器中

  3. 三层架构注解的方式和xml的方式有什么区别

    • 注解的解析不依赖于第三方库,而XML则需要依赖相应的XML解析器来读取和解析XML文件。

    • 注解和XML的配置方式也不同。使用注解可以将配置信息直接写在代码中,使得代码和配置信息更加紧密,降低了维护两个地方的成本。而使用XML则需要单独编写XML文件来存储配置信息,更加灵活

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值