Spring从入门到精通(二)

这是学习黑马程序SSM的课程笔记,这小节主要是注解的介绍
原视频地址:https://www.bilibili.com/video/BV1Fi4y1S7ix

数据源对象管理

在这里插入图片描述

加载properties文件

在这里插入图片描述
在这里插入图片描述

容器

创建容器

在Spring框架中,你可以使用不同的方式来创建一个Spring容器(ApplicationContext)。下面是两种常见的创建Spring容器的方式:

使用ClassPathXmlApplicationContext

使用XML配置文件来创建Spring容器是最常见的方式之一。通常,你会在项目中创建一个XML配置文件,其中包含了Bean的定义和配置信息,然后通过ClassPathXmlApplicationContext类来加载和创建Spring容器。以下是一个简单的示例:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {
    public static void main(String[] args) {
        // 加载Spring配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

        // 使用Spring容器中的Bean
        MyBean myBean = (MyBean) context.getBean("myBean");
        myBean.doSomething();

        // 关闭Spring容器(可选)
        ((ClassPathXmlApplicationContext) context).close();
    }
}

在上述示例中,我们使用了ClassPathXmlApplicationContext类,它从classpath中加载名为spring-config.xml的配置文件,然后创建了Spring容器。接下来,我们使用容器来获取和使用名为myBean的Bean。

  1. 使用AnnotationConfigApplicationContext

    如果你更喜欢使用基于注解的配置而不是XML配置文件,你可以使用AnnotationConfigApplicationContext类来创建Spring容器。在这种方式下,你需要在Java配置类中使用注解来定义Bean,然后通过AnnotationConfigApplicationContext类来加载这些配置类。以下是一个示例:

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class MainApp {
        public static void main(String[] args) {
            // 加载Java配置类
            ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
    
            // 使用Spring容器中的Bean
            MyBean myBean = (MyBean) context.getBean("myBean");
            myBean.doSomething();
    
            // 关闭Spring容器(可选)
            ((AnnotationConfigApplicationContext) context).close();
        }
    }
    

    在上述示例中,我们使用了AnnotationConfigApplicationContext类,通过AppConfig类中的注解配置来创建Spring容器。

不论使用哪种方式,一旦创建了Spring容器,你就可以使用容器来获取和管理Bean,并让Spring来处理依赖注入、生命周期管理等任务。在程序结束时,通常可以选择关闭Spring容器来释放资源,尤其是在长期运行的应用程序中。

获取Bean

在这里插入图片描述

容器类层次结构图

在这里插入图片描述

BeanFactory

在这里插入图片描述

核心容器总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注解开发

@Component 是Spring框架中的一个基本注解,用于表示一个类是Spring容器中的一个组件(Bean)。@Component 可以被用于任何普通的Java类,并告诉Spring将这个类实例化为一个Bean,并由Spring容器来管理其生命周期。

除了@Component注解,Spring还提供了三个衍生注解,它们分别是:@Repository@Service@Controller。这些衍生注解是基于@Component注解的,并且具有相同的效果,但它们用于更具体的类别,以提高代码的可读性和可维护性。

  1. @Repository:用于标记数据访问层(DAO,Data Access Object)的类。通常用于与数据库交互的持久层组件,它告诉Spring这个类负责数据库操作,可以处理数据库异常,并将它实例化为一个Bean。当Spring的组件扫描功能启用时,它会自动扫描并注册带有@Repository注解的类。

    import org.springframework.stereotype.Repository;
    
    @Repository
    public class UserRepository {
        // 数据访问逻辑
    }
    
  2. @Service:用于标记业务逻辑层(Service)的类。通常用于封装应用程序的业务逻辑,它告诉Spring这个类是一个业务服务组件。当Spring的组件扫描功能启用时,它会自动扫描并注册带有@Service注解的类。

    import org.springframework.stereotype.Service;
    
    @Service
    public class UserService {
        // 业务逻辑
    }
    
  3. @Controller:用于标记控制器层(Controller)的类。通常用于处理Web请求和控制应用程序的流程,它告诉Spring这个类是一个Web控制器组件。当Spring的组件扫描功能启用时,它会自动扫描并注册带有@Controller注解的类。

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @Controller
    public class MyController {
        @GetMapping("/hello")
        public String sayHello() {
            // 处理请求并返回视图
            return "hello";
        }
    }
    

总结:

  • @Component 是通用的注解,可以用于任何类。
  • @Repository 用于数据访问层(DAO)。
  • @Service 用于业务逻辑层(Service)。
  • @Controller 用于控制器层(Controller)。

这些注解可以帮助Spring更好地组织和管理不同层次的组件,并支持更具有表现力的代码。当Spring容器启动时,它会自动识别和注册这些带有注解的组件。

纯注解开发

在这里插入图片描述

注解开发bean作用范围与生命周期

在这里插入图片描述

注解开发依赖注入

在这里插入图片描述
在这里插入图片描述

注解开发管理第三方Bean

在这里插入图片描述
在这里插入图片描述
为第三方Bean注入资源
在这里插入图片描述
在这里插入图片描述

XML配置对比注解

在这里插入图片描述

Spring 整合MyBatis

整合思路
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Spring整合JUnit

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值