spring 容器

一.IOC和DI

IOC :控制反转,原来对象的创建的主动权在开发人员手里,现在都交给spring创建,存储,销毁。是一种思想。

DI:依赖注入,是一种实现。

二.spring 和 spring Boot

Spring是一个开源的大而全Java开发框架,Spring 的组件代码是轻量级的,但它的配置却是重量级的.

Spring Boot是基于Spring框架之上的一个快速开发框架,旨在简化Spring应用程序的开发、部署和运行。它提供了自动配置、起步依赖、嵌入式Web服务器等功能,可以让开发者更加快速地搭建和部署Spring应用程序。可插拔,开箱即用。

  • 解释“起步依赖” :简单理解为pom.xml配置文件中<dependent>    
  • 解释 “自动配置”:

三.启动spring容器

1.使用 XML 配置文件启动 Spring 容器

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

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

        // 从容器中获取 Bean 实例
        YourBean yourBean = (YourBean) context.getBean("yourBeanId");

        // 调用 Bean 的方法
        yourBean.someMethod();
    }
}

        在上面的示例中,ClassPathXmlApplicationContext 负责加载位于类路径下的 applicationContext.xml 文件,并创建 Spring 应用程序上下文。然后,你可以从容器中获取所需的 Bean 实例并使用它。

2.使用基于注解的配置启动 Spring 容器

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    public static void main(String[] args) {
        // 指定配置类
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

        // 从容器中获取 Bean 实例
        YourBean yourBean = (YourBean) context.getBean(YourBean.class);

        // 调用 Bean 的方法
        yourBean.someMethod();
    }
}

        在这种方法中,你需要定义一个 Java 配置类(如 AppConfig),在配置类上使用 Spring 的注解来配置 Bean。然后,使用 AnnotationConfigApplicationContext 加载配置类并启动 Spring 容器。

3. spring boot 启动容器方式

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
  • @SpringBootApplication 注解标识这是一个 Spring Boot 应用程序的入口类,并启用了 Spring Boot 的自动配置功能。

  • main 方法是 Java 应用程序的入口点。在 main 方法中,我们调用了 SpringApplication.run() 方法,传入了 Application.class 参数和命令行参数 args,以启动 Spring Boot 应用程序。

  • 当你运行这个主类时,Spring Boot 容器会启动,并自动扫描并加载你的应用程序中的组件(如控制器、服务、配置等),然后根据配置进行初始化,并最终启动你的应用程序。

四.将 Bean (对象) 存储(注册)到 Spring容器中

1.传统spring中Bean注册

        在Spring中,通常需要显式配置XML文件或使用Java配置类来注册Bean对象。你需要手动配置Bean的定义,并且需要确保这些配置文件被正确地加载到Spring容器中。

  • 使用XML配置文件时,需要在XML文件中定义Bean的配置,并通过Spring的ApplicationContext容器来加载和管理这些Bean。
  • 使用Java配置类时@Configuration,需要在配置类中使用@Bean注解来声明Bean的定义,并通过Java配置类来加载和管理这些Bean。

2.spring boot中Bean注册

        在Spring Boot中,Bean对象的注册更加自动化和便捷化。Spring Boot通过注解扫描和自动配置功能,大大简化了Bean的注册过程。

  •  在Spring Boot中,你可以使用@Component(组件存储)注解来标记组件类,Spring Boot会自动扫描并注册这些组件到Spring容器中。
  • 除了@Component注解之外,Spring Boot还提供了一系列衍生注解,如@Service(服务存储)、@Repository(仓库存储)、@Controller(控制器存储)等,用于标记不同类型的组件。
  • 除了组件扫描外,Spring Boot还提供了@Configuration(配置存储)注解和@Bean注解,用于声明配置类和Bean定义,从而实现更细粒度的控制。

总结五大类注解@Component ,@Service,@Repository,@Controller,@Configuration。

作用:这么多注解的作用是,如果一个项目特别大的情况下,文件会非常杂乱的,所以就是通过注解,来让程序员看到注解后就知道了,当前类的作用

关系:@Component 相当于是父亲,@Service(服务层,提供服务),@Repository(和持久化的数据库打交道),@Controller(参数的校验,和前端打交道多),@Configuration 之间是兄弟。

五.将 Bean (对象) 从 Spring (容器) 中取出来(装配

@Resource 和 @Autowired

相同点:都可以实现将一个对象注入到类中

不同点:

        1. 用法不同:@Resource支持属性/setter注入;@Autowired 支持属性/setter/构造方法注入

        2. 出身不同:@Resource来自JDK;@Autowired是spring框架提供的

        3. 支持参数不通:@Resource 支持更多的参数设置,name/type....  ;  而 @Autowired 只支持 required 参数设置


待总结://todo

单例模式

spring mvc  一个request 一个实例

spring mvc 一个session共享一个实例

~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值