当前位置: 首页 > news >正文

云南做网站找谁网站安全建设目的

云南做网站找谁,网站安全建设目的,无锡网站服务公司,3g开发网站10.1 注解概述 10.1.1 什么是注解 注解#xff08;Annotation#xff09;是从JDK5.0开始引入#xff0c;以“注解名”在代码中存在。例如#xff1a; Override Deprecated SuppressWarnings(value”unchecked”) Annotation 可以像修饰符一样被使用#xff0c;可用于修饰…10.1 注解概述 10.1.1 什么是注解 注解Annotation是从JDK5.0开始引入以“注解名”在代码中存在。例如 Override Deprecated SuppressWarnings(value”unchecked”) Annotation 可以像修饰符一样被使用可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。还可以添加一些参数值这些信息被保存在 Annotation 的 “namevalue” 对中。 注解可以在类编译、运行时进行加载体现不同的功能 10.1.2 注解与注释 注解也可以看做是一种注释通过使用 Annotation程序员可以在不改变原有逻辑的情况下在源文件中嵌入一些补充信息。但是注解不同于单行注释和多行注释。 对于单行注释和多行注释是给程序员看的。 而注解是可以被编译器或其他程序读取的。程序还可以根据注解的不同做出相应的处理。 10.1.3 注解的重要性 在JavaSE中注解的使用目的比较简单例如标记过时的功能忽略警告等。在JavaEE/Android中注解占据了更重要的角色例如用来配置应用程序的任何切面代替JavaEE旧版中所遗留的繁冗代码和XML配置等。 未来的开发模式都是基于注解的JPA是基于注解的Spring2.5以上都是基于注解的Hibernate3.x以后也是基于注解的Struts2有一部分也是基于注解的了。注解是一种趋势一定程度上可以说框架 注解 反射 设计模式。 10.2 常见的Annotation作用 示例1生成文档相关的注解 author 标明开发该类模块的作者多个作者之间使用,分割 version 标明该类模块的版本 see 参考转向也就是相关主题 since 从哪个版本开始增加的 param 对方法中某参数的说明如果没有参数就不能写 return 对方法返回值的说明如果方法的返回值类型是void就不能写 exception 对方法可能抛出的异常进行说明 如果方法没有用throws显式抛出的异常就不能写 package com.annotation.javadoc; /**  * author 尚硅谷-宋红康  * version 1.0  * see Math.java  */ public class JavadocTest {     /**      * 程序的主方法程序的入口      * param args String[] 命令行参数      */     public static void main(String[] args) {     }          /**      * 求圆面积的方法      * param radius double 半径值      * return double 圆的面积      */     public static double getArea(double radius){         return Math.PI * radius * radius;     } }   示例2在编译时进行格式检查(JDK内置的三个基本注解) Override: 限定重写父类方法该注解只能用于方法 Deprecated: 用于表示所修饰的元素(类方法等)已过时。通常是因为所修饰的结构危险或存在更好的选择 SuppressWarnings: 抑制编译器警告 package com.annotation.javadoc;   public class AnnotationTest{       public static void main(String[] args) {         SuppressWarnings(unused)         int a 10;     }     Deprecated     public void print(){         System.out.println(过时的方法);     }       Override     public String toString() {         return 重写的toString方法();     } }   示例3跟踪代码依赖性实现替代配置文件功能 Servlet3.0提供了注解(annotation)使得不再需要在web.xml文件中进行Servlet的部署。 WebServlet(/login) public class LoginServlet extends HttpServlet {     private static final long serialVersionUID 1L;          protected void doGet(HttpServletRequest request, HttpServletResponse response) { }          protected void doPost(HttpServletRequest request, HttpServletResponse response) {         doGet(request, response);     }   } servlet     servlet-nameLoginServlet/servlet-name     servlet-classcom.servlet.LoginServlet/servlet-class   /servlet   servlet-mapping     servlet-nameLoginServlet/servlet-name     url-pattern/login/url-pattern   /servlet-mapping   Spring框架中关于“事务”的管理 Transactional(propagationPropagation.REQUIRES_NEW,isolationIsolation.READ_COMMITTED,readOnlyfalse,timeout3) public void buyBook(String username, String isbn) {     //1.查询书的单价     int price bookShopDao.findBookPriceByIsbn(isbn);     //2. 更新库存     bookShopDao.updateBookStock(isbn);         //3. 更新用户的余额     bookShopDao.updateUserAccount(username, price); }   !-- 配置事务属性 -- tx:advice transaction-managerdataSourceTransactionManager idtxAdvice        tx:attributes        !-- 配置每个方法使用的事务属性 --        tx:method namebuyBook propagationREQUIRES_NEW       isolationREAD_COMMITTED  read-onlyfalse  timeout3 /        /tx:attributes /tx:advice   10.3 三个最基本的注解 10.3.1 Override 用于检测被标记的方法为有效的重写方法如果不是则报编译错误 只能标记在方法上。 它会被编译器程序读取。 10.3.2 Deprecated 用于表示被标记的数据已经过时不推荐使用。 可以用于修饰 属性、方法、构造、类、包、局部变量、参数。 它会被编译器程序读取。 10.3.3 SuppressWarnings 抑制编译警告。当我们不希望看到警告信息的时候可以使用 SuppressWarnings 注解来抑制警告信息 可以用于修饰类、属性、方法、构造、局部变量、参数 它会被编译器程序读取。 可以指定的警告类型有了解 all抑制所有警告 unchecked抑制与未检查的作业相关的警告 unused抑制与未用的程式码及停用的程式码相关的警告 deprecation抑制与淘汰的相关警告 nls抑制与非 nls 字串文字相关的警告 null抑制与空值分析相关的警告 rawtypes抑制与使用 raw 类型相关的警告 static-access抑制与静态存取不正确相关的警告 static-method抑制与可能宣告为 static 的方法相关的警告 super抑制与置换方法相关但不含 super 呼叫的警告 ... 示例代码 package com.atguigu.annotation; import java.util.ArrayList; public class TestAnnotation {     SuppressWarnings(all)     public static void main(String[] args) {         int i;         ArrayList list new ArrayList();         list.add(hello);         list.add(123);         list.add(world);         Father f new Son();         f.show();         f.methodOl();     } } class Father{     Deprecated     void show() {         System.out.println(Father.show);     }     void methodOl() {         System.out.println(Father Method);     } } class Son extends Father{ /*    Override     void method01() {         System.out.println(Son Method);     }*/ } 10.4 元注解 JDK1.5在java.lang.annotation包定义了4个标准的meta-annotation类型它们被用来提供对其它 annotation类型作说明。 1Target用于描述注解的使用范围 可以通过枚举类型ElementType的10个常量对象来指定 TYPEMETHODCONSTRUCTORPACKAGE..... 2Retention用于描述注解的生命周期 可以通过枚举类型RetentionPolicy的3个常量对象来指定 SOURCE源代码、CLASS字节码、RUNTIME运行时 唯有RUNTIME阶段才能被反射读取到。 3Documented表明这个注解应该被 javadoc工具记录。 4Inherited允许子类继承父类中的注解 示例代码 package java.lang; import java.lang.annotation.*; Target(ElementType.METHOD) Retention(RetentionPolicy.SOURCE) public interface Override { } package java.lang; import java.lang.annotation.*; import static java.lang.annotation.ElementType.*; Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) Retention(RetentionPolicy.SOURCE) public interface SuppressWarnings {     String[] value(); } package java.lang; import java.lang.annotation.*; import static java.lang.annotation.ElementType.*; Documented Retention(RetentionPolicy.RUNTIME) Target(value{CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) public interface Deprecated { } 拓展元数据 String name Tom; 10.5 自定义注解的使用 一个完整的注解应该包含三个部分 1声明 2使用 3读取 10.5.1 声明自定义注解 【元注解】 【修饰符】 interface 注解名{     【成员列表】 }  自定义注解可以通过四个元注解Retention,TargetInherited,Documented分别说明它的声明周期使用位置是否被继承是否被生成到API文档中。 Annotation 的成员在 Annotation 定义中以无参数有返回值的抽象方法的形式来声明我们又称为配置参数。返回值类型只能是八种基本数据类型、String类型、Class类型、enum类型、Annotation类型、以上所有类型的数组 可以使用 default 关键字为抽象方法指定默认返回值 如果定义的注解含有抽象方法那么使用时必须指定返回值除非它有默认值。格式是“方法名 返回值”如果只有一个抽象方法需要赋值且方法名为value可以省略“value”所以如果注解只有一个抽象方法成员建议使用方法名value。 package com.atguigu.annotation; import java.lang.annotation.*; Inherited Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) public interface Table {     String value(); } package com.atguigu.annotation; import java.lang.annotation.*; Inherited Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) public interface Column {     String columnName();     String columnType(); } 10.5.2 使用自定义注解 package com.atguigu.annotation; Table(t_stu) public class Student {     Column(columnName sid,columnType int)     private int id;     Column(columnName sname,columnType varchar(20))     private String name;     public int getId() {         return id;     }     public void setId(int id) {         this.id id;     }     public String getName() {         return name;     }     public void setName(String name) {         this.name name;     }     Override     public String toString() {         return Student{                 id id                 , name name \                 };     } }   10.5.3 读取和处理自定义注解 自定义注解必须配上注解的信息处理流程才有意义。 我们自己定义的注解只能使用反射的代码读取。所以自定义注解的声明周期必须是RetentionPolicy.RUNTIME。 具体的使用见《尚硅谷_宋红康_第17章_反射机制.md》。 10.6 JUnit单元测试 10.6.1 测试分类 黑盒测试不需要写代码给输入值看程序是否能够输出期望的值。 白盒测试需要写代码的。关注程序具体的执行流程。 10.6.2 JUnit单元测试介绍 JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个测试框架regression testing framework供Java开发人员编写单元测试之用。 JUnit测试是程序员测试即所谓白盒测试因为程序员知道被测试的软件如何How完成功能和完成什么样What的功能。 要使用JUnit必须在项目的编译路径中引入JUnit的库即相关的.class文件组成的jar包。jar就是一个压缩包压缩包都是开发好的第三方Oracle公司第一方我们自己第二方其他都是第三方工具类都是以class文件形式存在的。 10.6.3 引入本地JUnit.jar 第1步在项目中File-Project Structure中操作添加Libraries库 其中junit-libs包内容如下 第2步选择要在哪些module中应用JUnit库 第3步检查是否应用成功 注意Scope选择Compile否则编译时无法使用JUnit。 第4步下次如果有新的模块要使用该libs库这样操作即可 10.6.4 编写和运行Test单元测试方法 JUnit4版本要求Test标记的方法必须满足如下要求 所在的类必须是public的非抽象的包含唯一的无参构造器。 Test标记的方法本身必须是public非抽象的非静态的void无返回值()无参数的。 package com.atguigu.junit; import org.junit.Test; public class TestJUnit {     Test     public void test01(){         System.out.println(TestJUnit.test01);     }     Test     public void test02(){         System.out.println(TestJUnit.test02);     }     Test     public void test03(){         System.out.println(TestJUnit.test03);     } } 0.6.5 设置执行JUnit用例时支持控制台输入 1. 设置数据 默认情况下在单元测试方法中使用Scanner时并不能实现控制台数据的输入。需要做如下设置 在idea64.exe.vmoptions配置文件中加入下面一行设置重启idea后生效。 -Deditable.java.test.consoletrue 2. 配置文件位置 添加完成之后重启IDEA即可。 3. 如果上述位置设置不成功需要继续修改如下位置 修改位置1IDEA安装目录的bin目录例如D:\develop_tools\IDEA\IntelliJ IDEA 2022.1.2\bin下的idea64.exe.vmoptions文件。 修改位置2C盘的用户目录C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2022.1 下的idea64.exe.vmoptions件。 10.6.6 定义test测试方法模板 选中自定义的模板组点击””1.Live Template来定义模板。
http://www.zqtcl.cn/news/352283/

相关文章:

  • 西安市高新区建设规划局网站织梦小说网站模板下载地址
  • 网站开发简历 自我评价网页设计报告论文
  • 如何让网站不被收录不备案 国内网站
  • 站长之家域名买天猫店铺去哪里买
  • asp.net做的网站模板下载万网x3 wordpress
  • 设计网站设计目标天津市建设工程管理总队网站
  • 网站开始怎么做上海响应式网页建设
  • 网站备案 seo免费二维码制作网站
  • 删除网站备案网站建设湖南岚鸿建设
  • 做vlogger的网站有哪些长沙网站排名技巧
  • 媒体营销平台商品seo关键词优化
  • 芜湖先锋网站两学一做wordpress菜单顶部
  • 网站策划怎么样一级域名网站如何申请
  • 烟台高端网站开发网站开发哪个公司好
  • 广州网站定制开发方案南宁网站 制作
  • php做网站需要后台吗郑州建网站十大
  • 网站跳出率是什么意思百度服务
  • 建站 discuz开发者导航
  • 有哪些网站可以做毕业设计外贸网站发外链
  • 如何使用网站模板计算机培训班有用吗
  • 本地宁波网站建设电子商务网站建设工具都有那些
  • 网站建设的基本目标免费 wordpress企业主题
  • 专业网站建设微信商城开发规划馆网站建设
  • 网站建设公司沈阳西安建设工程信息交易中心官网
  • 青海住房和城乡建设部网站wordpress php7.3
  • 网站后台重置密码怎么做360网站怎么做网址链接
  • 广告网站建设及推广网站建设怎样推广
  • 做网站使网页不居中滁州注册公司流程和费用
  • 做网站广告经营者个性定制网站
  • 网站开发 北京外包公司软件公司网站建设