基于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配置文件,提供更灵活和简洁的配置方式。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值