java中常见注解
来源:互联网 发布:网络暴力案例分析 编辑:程序博客网 时间:2024/06/06 08:50
前言:
Spring的核心是一个Ioc容器,这个容器负责bean的注册和管理。注册方式:
1. 注解方式进行注入
2. Xml的bean配置
标记类:
关键词:
@Controller:标注控制层组件,进行bean注入
@Service:标注业务层组件,进行bean注入
@Repository:标注数据访问层组件,进行bean注入
@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。
这种bean注入方式,生成的bean的id名为类名的首字母小写。
配置:
添加以上四种注解的类需要通过spring的xml配置,进行注册;
通过包路径的扫描,带有bean注解关键字,进行注册(<context:component-scanbase-package= />);
<context:component-scanbase-package="com.baobaotao">
<context:include-filtertype="regex"
expression="com\.baobaotao\.service\..*"/>
<context:exclude-filtertype="aspectj"
expression="com.baobaotao.util..*"/>
</context:component-scan>
扩展:
值得注意的是 <context:component-scan/> 配置项不但启用了对类包进行扫描以实施注释驱动 Bean 定义的功能,同时还启用了注释驱动自动注入的功能(即还隐式地在内部注册了AutowiredAnnotationBeanPostProcessor
和CommonAnnotationBeanPostProcessor
),因此当使用 <context:component-scan/> 后,就可以将 <context:annotation-config/> 移除了。<context:annotation-config/> 这个注册了两个处理器,在@Resource需要依赖
CommonAnnotationBeanPostProcessor
这个处理器。
标记属性和方法:
@Autowired
说明:
通过类型去查找bean注入。可以标注在属性上,setter方法上,构造函数上。这时,@Autowired 将查找被标注的方法的入参类型的 Bean,并调用方法自动注入这些 Bean。类似使用xml的bean注入方式。
注意:
默认@Autowired进行注入时,需要在spring容器中存在这个bean,有且只有一个,如果找不到匹配的bean,spring容器会抛出BeanCreationException异常。当不确定是否存在,需要使用@Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错。
如果 Spring 容器中拥有多个候选 Bean,Spring 容器在启动时也会抛出 BeanCreationException 异常。此时可以使用@Autowired@Qualifier("personDaoBean")来匹配bean的名称进行注入,这种方式是让注入通过名称来进行匹配,这种注入再找不到匹配的bean名称时,不会再按照类型进行bean的匹配。
@Resource
说明:
允许通过name和type进行bean注入,一旦指定类型,只按照其中一种,未指定则先通过name查找bean,没有找到则再通过type查找。
@Resource(name="dataSource")
@Resource(type=DataSource.class)
注意:
需要在配置文件中新增处理器CommonAnnotationBeanPostProcessor
@RequestMaping
说明:
可以作用于方法或类上。(用于控制层)
@RequestMapping("/softpg/downSoftPg.do")
@RequestMapping(value="/softpg/ajaxLoadSoftId.do",method =POST)
@RequestMapping(value = "/osu/product/detail.do", params = {"modify=false" }, method=POST)
方法的参数允许基本类型和对象,且可以同时存在。
注意:
方法中的参数如果是基本类型,必须一一匹配且存在,否则请求时会返回400的错误。如果方法的参数是类,则客户端可以使用同样的传参方式进行参数的赋值,且允许基本类型和实体类参数并行使用,且允许某个类中的属性值不传值。
@PathVariable
说明:
可以通过@PathVariable获取uri部分中表明的参数。用于需要将uri中的部分值作为入参进行处理。通过value指定在uri中的变量名,不配则按照名字进行匹配。
例子:
注意:
这个注解可以用于类中,也可以位于方法中的requestMapping中。
@RequestParam
说明:
指的是url中的参数部分,不配置则按照参数名进行对应,且要求参数完整。进行配置后可以修改参数的参数名,参数是否必须
例子:
@RequestParam(required=false):参数不是必须的,默认为true
@RequestParam(value="id",required=false)
@RequestParam(“id”)
@RequestHeader
通过该注解获取http请求头的值
@CookieValue
可以把Requestheader中关于cookie的值绑定到方法的参数上。
- java中常见注解
- Java中常见的注解
- Java注解[内置系统注解与Spring中常见注解]
- java中常见修饰符使用注解
- java注解:java中常见的第三方注解,自定义注解以及元注解
- Java中的常见注解
- Java Spring 常见注解汇总
- java代码中常见的3中注解(Annotation)-----程序中带有@的语句
- Spring应用中常见的bean注解
- JAXB中各种常见注解小结
- JAXB中各种常见注解小结
- JAXB中各种常见注解小结
- JAXB中各种常见注解小结
- Springboot中常见注解的使用
- SpringBoot中常见注解含义总结
- java中 实体注解
- java中注解
- java中注解 详解
- Data Types
- zabbix监控Nginx状态
- 分布式架构学习之:000--介绍Dubbo
- Python装饰器学习(九步入门)
- ZXing实现二维码的生成与解析
- java中常见注解
- 使用负的 nth-child 来选择元素
- 遥感专业学习神经网络与深度学习过程中的想法
- 开启Mongo服务报错: Failed to connect to 127.0.0.1 :27017 目标计算机积极拒绝,无法连接
- handle消息机制
- poj 3723 kruskal最大权值树
- p
- nginx 编译安装
- 【Unity3D】平面绘图——GL与GUI