Spring注解

it2023-01-07  66

文章目录

1.@Component2.@Service3.@Repository4.@Autowired5.@Qualifier6.@Resource7.@Configuration8.@Bean9.@ComponentScan10.@Controller11.@RequestMapping12.@ResponseBody13.@RequestParam14....

1.@Component

标注类为Spring组件

2.@Service

标注类为业务层的类,Spring组件

3.@Repository

标注类为数据访问层的类,Spring组件

4.@Autowired

通过类型自动装配依赖项

5.@Qualifier

通过名称自动装依赖项,当自动装配的类型不值一个时,需要与@Autowired连用指定名称 对自动注入的实体进行区分

6.@Resource

次注解是Java注解,只是Spring对其进行了支持 Spring 通过JSR 250 的@Resource 注释支持按字段和setter方法的名称自动装配

7.@Configuration

@Configuration @ComponentScan({"dao","service"}) public class WebConfig { /** * 将操作elasticsearch的工具类注入Spring * @return RestHighLevelClient工具类 */ @Bean(name = "restHighLevelClient") public RestHighLevelClient restHighLevelClient(){ RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1",9200,"http"))); return client; } } 指明本类为配置类,在测试时通过 ApplicationContext context1 = new AnnotationConfigApplicationContext (WebConfig.class); 来进行加载,而非之前的通过xml文件加载。

8.@Bean

在配置类中,通过创建指定返回类型的方法将实例注入到Spring容器 如:

@Bean public RestHighLevelClient restHighLevelClient(){ RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1",9200,"http"))); return client; }

这样就将一个RestHightLevelClient类型的实例注入到了Spring容器中 其中,Bean可以指定名称 如:@Bean(name = “restHighLevelClient”) 否者其名称为方法名

9.@ComponentScan

注解扫描,之前我们在配置文件中是这样扫描注解的

<!--扫描dao和service--> <context:component-scan base-package="dao"/> <context:component-scan base-package="service"/>

我们可以在配置类(带@Configuration注解的类)中以这个注解的方式来进行扫描 如下

@ComponentScan({"dao","service"})

10.@Controller

控制器,用于处理数据、前后端交互,注解于类,相当于之前的Servlet

11.@RequestMapping

请求映射的路径,相当于之前Servlet中的“/find.do

12.@ResponseBody

指明该方法返回的是JSON格式数据

13.@RequestParam

如:public String findAllUser(Model model, @RequestParam("param") String parames){} 这样就会从前端数据中接收到param这个参数,从而进行相应的业务处理

14…

最新回复(0)