notnull参数的作用(SpringMVC注解中的这个@Resource和@Notnull各有什么用处啊能讲详细点么)

本文目录
- SpringMVC注解中的这个@Resource和@Notnull各有什么用处啊能讲详细点么
- 为什么mysql字段要设置为not null
- java的@NotNull有实际作用吗
- SQL Server中,null 与not null 在什么时候用
SpringMVC注解中的这个@Resource和@Notnull各有什么用处啊能讲详细点么
@Resource是源的意思,作用要从容器中得到你注入过的类,functionMqr是注入是的名称,可以你自己定义也可以默认。
@Resource+@NotNull的作用,要从容器中拿到这个注入的对象来使用,并且这个对象不能为空。
具体的作用讲解如下:
一、@Resource
Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。
@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Resource装配顺序
如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。
如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。
如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常。
如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
二、@NotNull
定义关于约定可空性(Nullability),要通过使用像@NotNull和@Nullable类似的注释提示这个方法是否为空安全(null safe)。
代码如下:
/** * The annotated element must not be
{@code null}. * Accepts any type. * * @author Emmanuel Bernard
*/
为什么mysql字段要设置为not null
都有默认值了,当然是设成not null了。
能够非空的尽量非空。
Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间,还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引
注意:但把NULL列改为NOT NULL带来的性能提示很小,除非确定它带来了问题,否则不要把它当成优先的优化措施,最重要的是使用的列的类型的适当性.
java的@NotNull有实际作用吗
/**
* Denotes that a parameter, field or method return value can never be null.
* This is a marker annotation and it has no specific attributes.
*/
//解释:指明一个参数,字段或者方法的返回值不可以为null;
//这是一个动画标记,没有特定的属性值;
有作用,但这个只是IDE对代码的静态检查null,运行时传递过来的null还是需要用代码做好空保护。
SQL Server中,null 与not null 在什么时候用
SQL Server中空值以“null”表示。
要测试一个“对象”为空值时得到结果为真的话,用以下语句:"对象 IS NULL"。
要测试一个“对象”不为空值时得到结果为真的话,用以下语句:"对象 IS NOT NULL"。
例:
DECLARE @A INT --随便定义一个变量
SET @A=NULL --让这个变量为空值
IF @A IS NULL --如果为空
BEGIN
SELECT ’AA’ AS LS
END ELSE BEGIN
SELECT ’BB’ AS LS
END
--运行结果 AA
IF @A IS NOT NULL --如果不为空
SELECT ’AA’ AS LS
ELSE
SELECT ’BB’ AS LS
--运行结果 BB
SET @A=1 --让这个变量为1
IF @A IS NULL --如果为空
BEGIN
SELECT ’AA’ AS LS
END ELSE BEGIN
SELECT ’BB’ AS LS
END
--运行结果 BB
IF @A IS NOT NULL --如果不为空
SELECT ’AA’ AS LS
ELSE
SELECT ’BB’ AS LS
--运行结果 AA
相关知识点延伸:
1、“null”的意思是“空值”。“not null”是not(否)运算,加null(空值),意思即“不是空值”。
2、实际运用中,一般还要加一个“IS”:
如“is null”如果是空值返回“真”。
如“is not null”如果不是空值返回“真”。
3、在SQL Server中,空值不应该与实际数值比较大小,但不禁止(不报错)比较大小,如果进行比较,结果将为“否”。也就是说:
“1》null”,“1=null”,“1《null”
的逻辑运算结果都为否。
需要注意的是,要判定一个值是否为空
3、在实际工作中,如果针对某个含有空值的字段根据大小值进行查询的话,如果没考虑到,就会出现:
大于某值的记录数 (+) 小于或等于某值的记录数 (不等于) 总的记录数
此外,多表联查时,如果没考虑到空值可能会出现意外的数据查询错误。

更多文章:
细胞之间的interaction(细胞间相互作用方式有什么 有什么区别)
2026年5月26日 18:45
powder是什么刷子(rt化妆刷怎么样Real Techniques化妆刷怎么样)
2025年5月28日 07:15
u16女足亚洲杯直播(女足亚洲杯半决赛时间直播什么平台能看)
2026年4月9日 20:45
excel教程进阶(小白学Excel之操作中的常用技巧-Excel学习网)
2026年4月22日 12:45
结构体数组交换位置(c语言编程:将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,3,要求改为3,4,5)
2025年9月14日 12:00
哪些cms可以做小说站(Wordpress、Discuz、KingCMS、MediaWiki各适合建什么样的站)
2026年7月24日 05:30
countif是计算什么的(excel中countif函数的功能是什么)
2025年5月29日 21:15
html5可以用在哪些方面(html5可以用来干什么,应用于哪些领域发展前景如何)
2026年3月11日 15:30
什么不是数据库系统的特点(急求解答题目 :什么不是数据库系统阶段的特点等)
2025年7月23日 08:45
运算放大器权威指南第五版(单电源运放和双电源运放有什么区别)
2026年5月1日 20:15
函数图像生成器 网页(有没有一种软件,当你输入数学公式后,软件就可以生成相应的图形(平面的或三维的))
2026年5月26日 16:45
thinkphp后台模板(为什么在thinkphp中的模板里只显示html代码,如图)
2025年7月25日 16:45
webservice部署在服务器(如何部署java webservice)
2025年12月16日 21:15
decimal转换为int(C#中怎样将decimal转int)
2025年6月3日 04:30
java的graphics详解(Java的Graphics类应该怎么用)
2026年8月9日 23:00









