sql 注射

这是上周解决的DI / CDI基础知识的延续-在本文中,我将讨论基础注入,限定词和范围。

在上一个主题中,我们提供了有关DI / CDI概念的大量信息,我们还讨论了如何使用注释加载这些bean或类-这构成了对象的组成并创建了关于如何进行采样的示例。以编程方式声明它们。 在本文中,我们将在注入部分进行更多的介绍,即如何获取特定资源并将其注入另一个资源以供使用。

那么如何首先注入一个豆子呢?

基本注射

您如何注入豆?

  • 使用@Inject <Java-Type> <variable>进行字段注入
  • <Java-Type>可以是Java类或Java接口
public class MyGreeter {// Inject Greeting object for field injection@Inject Greeting greeting;public sayGreeting(String name){// You can then used the injected Greeting objectSystem.out.println(greeting.greet(name)); }
}

哪里可以注入豆子?

可以在“注入点”注入豆

  • 领域
  • 方法参数

方法可以是:

  • 构造函数(对创建的不可变对象有用)>初始化程序
  • 设置方法
  • 制片人
  • 观察者
public class MyGreeter {private Greeting greeting;// Use constructor method injection@Injectpublic MyGreeter(Greeting greeting) {this.greeting = greeting; }public sayGreeting(String name){System.out.println(greeting.greet(name)); }
}

资格赛

如果存在多种实现类型(接口和子类),则限定符用于分配特定的bean。 假设您有两个特定接口的候选对象(实现类):

  • 界面是人
  • 第1类是普通人
  • 第2类是非正规人士

通过引入/创建自己的Qualifier批注,我们可以使用Qualifiers明确指定类的实现:

RegularPerson Qualifier批注:

NonRegularPerson限定符注释:

现在,我们需要创建一个实现类并将其标记到我们创建的Qualifier中。

RegularPersonImpl:

NonRegularPersonImpl:

注意:您可以具有尽可能多的限定符–请记住,限定符是用于将逻辑对象实现与其公共接口分开的。

现在已经设置了实现,现在我们可以注入类并使用其限定符。

在此示例中,您可以清楚地看到用法,通过引入Qualifier,开发人员可以通过注释明确指定实现类型。

在此处下载示例。

您可以利用预选赛做其他事情吗?

我将不进一步讨论限定词的其他用途,相反,我将让您检查以下示例,以尝试并探索:

  • 多个预选赛
  • 带有属性的限定词
  • 具有多个属性的限定符

范围

为什么首先需要在对象上作用域? –对于Web应用程序,我们需要bean在用户与应用程序进行交互的整个过程中保持状态,例如,跨多个对服务器的请求。

开发人员可以分配给对象的作用域有5种类型:

  • @Dependent(默认)

    • 默认范围(如果未指定);
  • @RequestScoped
    • 在单个HTTP请求中用户与Web应用程序交互期间,将维护对象的状态。
  • @SessionScoped
    • 在多个HTTP请求之间用户与Web应用程序交互期间,将维护对象的状态。
  • @ApplicationScoped
    • 所有用户与Web应用程序交互中的共享状态。
  • @ConversationScoped
    • 会话上下文由应用程序明确划分

我不会在这里详细介绍,但我将为您提供可以运行的实际示例。 在此处下载项目。

  • 依附
  • 请求
  • 届会
  • 应用
  • 会话

下一站:DI / CDI –前进

使用此新功能,您可以清楚地观察和想象通过简化许多设置Web应用程序的过程来提高开发人员的生产率–可以创建限定符以明确区分具有共同目标(按接口)的逻辑/业务Bean,进行范围界定让开发人员控制流程并管理对象的状态–简化了直接通过UI通过EL调用UI的Bean,使其更加简单明了。

请检查示例并自行尝试,最好检查一个实际示例,而不是仅仅阅读细节和概念。 请享用!

参考: 基本注射/资格赛,我们的JCG合作伙伴 Alvin Reyes在Alvin“ Jay” Reyes博客博客上的范围。

翻译自: https://www.javacodegeeks.com/2013/08/basic-injection-qualifiers-scope.html

sql 注射

sql 注射_基本注射/资格赛,范围相关推荐

  1. 【宋红康 MySQL数据库】【03】SQL概述_常见的数据库对象

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库][03]SQL概述_常见的数据库对象 SQL概述 什么是SQL SQL背景知识 SQL分类 DDL(Data Defini ...

  2. sql 注射_令人惊讶的注射

    sql 注射 所以,我欠吉姆道歉. 他编写了一个有效的模拟和JUnit测试,我在回顾中告诉他,我认为它没有达到他的预期. 当我错了时,这种情况对我来说就像是一个错误 . 称它为理想的意外副作用. 假设 ...

  3. sql 注射_只能在测试中注射吗?

    sql 注射 本文是关于测试设计和可测试性的一些想法. 我们与我的儿子讨论了一些问题,他的儿子是Java的初级开发人员,目前在匈牙利的EPAM(我工作的同一家公司,但在另一家公司工作)受雇并学习. 本 ...

  4. 通达oa php冲突,通达OA某版本系统存在通用SQL注入(附注射技巧)

    最近学习SQL注入 其实是通用的 只是洞主么有核实版本 还存在基于报错的注入 Office Anywhere 2008 网络智能办公系统 mysql+win+php 实例: http://219.13 ...

  5. java查看sql视图_数据库的查询与视图

    第4章 数据库的查询和视图 4.1.1 选择列 通过SELECT语句的项组成结果表的列. ::= SELECT [ ALL |DISTINCT ] [ TOP n [ PERCENT ] [ WITH ...

  6. 结束下面sql块_如何执行超过100M的SQL脚本?

    技术_菜鸟 https://www.cnblogs.com/hai-ping/p/3939150.html 最近遇到一个问题,在SQL Server的查询分析器里面执行一个超过100MB的数据库脚本, ...

  7. mysql中以下正确的sql是_总结MySQL中SQL语法的使用

    --where子句操作符: where子句操作符 = 等于 <> 不等于(标准语法) != 不等于(非标准语法,可移植性差) < 小于 <= 小于等于 > 大于 > ...

  8. access 导入 txt sql语句_从零开始学习 MySQL 系列索引、视图、导入和导出

    阅读本文大概需要 8 分钟 前言上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识.作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家会 ...

  9. 出生日期范围的Sql语句_【呕心总结】python如何与mysql实现交互及常用sql语句

    9 月初,我对 python 爬虫 燃起兴趣,但爬取到的数据多通道实时同步读写用文件并不方便,于是开始用起mysql.这篇笔记,我将整理近一个月的实战中最常用到的 mysql 语句,同时也将涉及到如何 ...

最新文章

  1. CentOS7在防火墙开启与关闭以及端口操作
  2. 启动一个线程是用run()还是start()?
  3. SRM 591 div1 275
  4. 基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (补充篇)
  5. echarts 树图样式美化_echarts2 tree树图自定义显示缩放大小、位置
  6. VC 实现文件夹属性的获取与更改
  7. Tensorflow tf.keras.layers.LSTM
  8. php开发人脸识别流程,php使用face++实现一个简单的人脸识别系统
  9. 系统稳定性建设实践总结
  10. 谷歌地球 最新hosts_给我一个Google地球app,可以领略全球3D风情
  11. 计算机占cpu程序,电脑cpu占用过高怎么办 电脑进程CPU占用100%解决办法
  12. 架构师之路16年精选50篇_2011年精选
  13. 清理XCode缓存文件
  14. 关于java导出Excel 并设置密码权限
  15. Wi-Fi 6关键技术及产业进展
  16. 查看dg主备库同步情况
  17. 采样频率和带宽的关系_发送端测试的主力设备 - 实时示波器朝向高带宽高位数发展...
  18. Robots协议小记
  19. python替换pdf内容_如何编辑pdf文件,替换其数据?
  20. 0-180度移相电路设计

热门文章

  1. Codeforces274B
  2. Codeforces Round #485 (Div. 2)
  3. Spring Data之MongoDB配置
  4. sleep( ) 和 wait( ) 的这 5 个区别,你知道几个
  5. 接口 DataInput
  6. 如何安装并启动django
  7. 将数组前n个和后m-n个整体逆置的实现
  8. java中,剩下的这两个内部类不太好理解!
  9. 《金色梦乡》金句摘抄(十一)
  10. winform通过ListView绑定数据库数据源