基于Java类进行配置

        JavaConfig 原来是 Spring 的一个子项目,它通过 Java 类的方式提供 Bean 的定义信息,在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能 。

1、编写一个实体类,Dog

@Component  //将这个类标注为Spring的一个组件,放到容器中!
public class Dog {
   public String name = "dog";
}

2、新建一个config配置包,编写一个MyConfig配置类

@Configuration  //代表这是一个配置类
public class MyConfig {

   @Bean //通过方法注册一个bean,这里的返回值就Bean的类型,方法名就是bean的id!
   public Dog dog(){
       return new Dog();
  }

}

3、测试

@Test
public void test2(){
   ApplicationContext applicationContext =
           new AnnotationConfigApplicationContext(MyConfig.class);
   Dog dog = (Dog) applicationContext.getBean("dog");
   System.out.println(dog.name);
}

4、成功输出结果!

导入其他配置如何做呢?

1、我们再编写一个配置类!

@Configuration  //代表这是一个配置类
public class MyConfig2 {
}

2、在之前的配置类中我们来选择导入这个配置类

@Configuration
@Import(MyConfig2.class)  //导入合并其他配置类,类似于配置文件中的 inculde 标签
public class MyConfig {

   @Bean
   public Dog dog(){
       return new Dog();
  }

}

关于这种Java类的配置方式,我们在之后的SpringBoot 和 SpringCloud中还会大量看到,我们需要知道这些注解的作用即可!

Spring注解

注解 作用
@Component 标记一个普通的Spring组件,将类创建为Spring的bean,并加入IoC容器中
@Repository 标记数据访问层(Dao层)的类,表示它负责与数据库或其他数据源进行交互
@Service 标记服务层(Service层)的类,表示它提供某种业务逻辑的服务
@Controller 标记控制器类,处理Spring MVC应用程序中接收到的请求,并根据@RequestMapping等注解的配置进行路由
@Autowired 用于进行依赖注入,将与被标注属性或构造函数类型匹配的bean实例自动注入到类中
@Value 用于给属性赋值,从配置文件或环境变量中读取配置值,并将其注入到被标注属性中
@Configuration 标记配置类,告诉Spring容器这是一个Java配置类,Spring会根据配置类中的@Bean注解配置bean,并将它们添加到IoC容器中
@Import 导入其他配置类或组件类,使得被导入的类也能被Spring容器管理
@ComponentScan 指定要扫描的包路径,自动扫描并注册包下的所有被@Component等注解标记的类
@Bean 在@Configuration配置类中,使用@Bean注解标注方法,将方法返回的对象作为一个bean添加到Spring容器中
@Conditional 根据指定条件动态地决定是否创建或注册bean或配置类
@Qualifier 用于标识注入时的具体的bean,当多个bean满足条件时,用于指定具体需要注入的bean
@Profile 根据指定的profile条件选择性地注册或创建bean
@RequestMapping 用于映射请求路径与处理方法,将HTTP请求与Controller类中的特定方法进行绑定,指定处理请求的URL路径、请求方法、参数等
@PathVariable 用于获取URL路径中的变量值,将URL路径中的变量映射到方法的参数中
@RequestParam 用于获取请求参数的值,将请求参数映射到方法的参数中
@ResponseBody 用于将方法的返回值直接作为HTTP响应的内容返回,通常用于RESTful API的开发
@ExceptionHandler 定义全局的异常处理方法,处理指定的异常类型或所有异常,用于统一处理异常并返回自定义的异常响应
@Validated 用于开启Spring对请求参数的验证,可以指定验证的分组、验证顺序等属性

Spring MVC注解

注解 作用
@RequestMapping 用于映射请求路径与处理方法,将HTTP请求与Controller类中的特定方法进行绑定,指定处理请求的URL路径、请求方法、参数等
@PathVariable 用于获取URL路径中的变量值,将URL路径中的变量映射到方法的参数中
@RequestParam 用于获取请求参数的值,将请求参数映射到方法的参数中
@ResponseBody 用于将方法的返回值直接作为HTTP响应的内容返回,通常用于RESTful API的开发
@RequestBody 用于将HTTP请求的内容映射到方法的参数中,适用于接收JSON/XML等格式的请求体数据
@ControllerAdvice 类级别的注解,用于定义全局的异常处理和数据绑

以下是使用Java类配置Spring和Spring MVC时常用的注解:

Spring注解:

注解 作用
@Configuration 声明一个Java配置类,用于替代传统的XML配置文件
@Bean 在@Configuration配置类中,使用@Bean注解标注方法,将方法返回的对象作为一个bean添加到Spring容器中
@ComponentScan 指定要扫描的包路径,自动扫描并注册包下的所有被@Component等注解标记的类
@Component 标记一个普通的Spring组件,将类创建为Spring的bean,并加入IoC容器中
@Repository 标记数据访问层(Dao层)的类,表示它负责与数据库或其他数据源进行交互
@Service 标记服务层(Service层)的类,表示它提供某种业务逻辑的服务
@Controller 标记控制器类,处理Spring MVC应用程序中接收到的请求,并根据@RequestMapping等注解的配置进行路由
@Autowired 用于进行依赖注入,将与被标注属性或构造函数类型匹配的bean实例自动注入到类中

Spring MVC注解:

注解 作用
@Configuration 声明一个Java配置类,用于替代传统的XML配置文件
@EnableWebMvc 启用Spring MVC的配置,用于替代传统的XML配置文件
@Controller 标记控制器类,处理Spring MVC应用程序中接收到的请求,并根据@RequestMapping等注解的配置进行路由
@RequestMapping 用于映射请求路径与处理方法,将HTTP请求与Controller类中的特定方法进行绑定,指定处理请求的URL路径、请求方法、参数等
@PathVariable 用于获取URL路径中的变量值,将URL路径中的变量映射到方法的参数中
@RequestParam 用于获取请求参数的值,将请求参数映射到方法的参数中
@ResponseBody 用于将方法的返回值直接作为HTTP响应的内容返回,通常用于RESTful API的开发
@RequestBody 用于将HTTP请求的内容映射到方法的参数中,适用于接收JSON/XML等格式的请求体数据
@Valid 用于开启Spring对请求参数的验证
@ExceptionHandler 定义全局的异常处理方法,处理指定的异常类型或所有异常,用于统一处理异常并返回自定义的异常响应

这些注解可以帮助我们用Java类来配置Spring和Spring MVC,替代传统的XML配置文件,提供更灵活和简洁的配置方式。

 

 

 

你可能感兴趣的:(java,开发语言)