做前端网站要注意哪些网站建设模板怎么设计

news/2025/9/29 21:54:34/文章来源:
做前端网站要注意哪些,网站建设模板怎么设计,wordpress升级设置密码,时尚工作室网站源码注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 注解开发的优点:提高开发效率 注解开发的缺点:在一定程度上违背了OCP原则#xff0c;使用注解的开发的前提是需求比较固定#xff0c;变动较小。 1 注解的注解称为元注解 自定义一个注解: package com.sunspl…注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 注解开发的优点:提高开发效率 注解开发的缺点:在一定程度上违背了OCP原则使用注解的开发的前提是需求比较固定变动较小。 1 注解的注解称为元注解 自定义一个注解: package com.sunsplanter.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(value {ElementType.TYPE,ElementType.FIELD}) Retention(value RetentionPolicy.RUNTIME) public interface Component {String value(); }该注解上面修饰的注解包括Target注解和Retention注解这两个注解被称为元注解。Target注解用来设置Component注解可以出现的位置以上代表表示Component注解只能用在类和接口上。Retention注解用来设置Component注解的保持性策略. SOURCE:注解只被保留在Java源文件中,class文件不包含注解. CLASS:注解最终被保留到class文件中,但不能被反射机制读取. RUNTIME:注解最终被保留到class文件中,并且可以被反射机制读取. String value(); 是Component注解中的一个属性。该属性类型String属性名是value。 2 管中窥豹注解的作用-通过反射机制读取注解 目标:只知道报包名com.sunsplanter.bean,至于这个包下有多少个Bean我们不知道。哪些Bean上有注解都不知道. 通过程序全自动化判断: 若Bean类上有Component注解时则实例化Bean对象如果没有则不实例化对象。 我们准备两个Bean一个上面有注解一个上面没有注解。 package com.sunsplanter.bean;import com.sunsplanter.annotation.Component;Component(userBean) public class User { }package com.sunsplanter.bean;public class Vip { }package com.sunsplanter.test;import com.sunsplanter.annotation.Component;import java.io.File; import java.net.URL; import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; import java.util.Map;public class Test {public static void main(String[] args) throws Exception {// 存放Bean的Map集合。key存储beanId。value存储Bean。MapString,Object beanMap new HashMap();String packageName com.sunsplanter.bean;//将com.sunsplanter.bean转化成com/sunsplanter/bean并存到path中String path packageName.replaceAll(\\., /);//获取这个包在系统中的绝对路径:file:/D:/study/spring6/spring6-005-Annotation/target/classes/com/sunsplanter/beanURL url ClassLoader.getSystemClassLoader().getResource(path);//获取一个绝对路径下的所有子文件,并写入文件数组File file new File(url.getPath());File[] files file.listFiles();Arrays.stream(files).forEach(f - {//获取两个类的相对包路径,如com.sunspalnter.bean.User...String className packageName . f.getName().split(\\.)[0];try {Class? clazz Class.forName(className);if (clazz.isAnnotationPresent(Component.class)) {Component component clazz.getAnnotation(Component.class);String beanId component.value();Object bean clazz.newInstance();beanMap.put(beanId, bean);}} catch (Exception e) {e.printStackTrace();}});System.out.println(beanMap);} }3 声明Bean的注解 通过注解声明该类是一个bean类,今后就会被自动创建bean对象. 负责声明Bean的注解常见的包括四个 ComponentControllerServiceRepository 通过源码可以看到Controller、Service、Repository这三个注解都是Component注解的别名。 也就是说这四个注解的功能都一样, 只是为了增强程序的可读性建议 ● 控制器类上使用Controller(主要用于给前端返回数据的以及接收前端的数据的) ● service类上使用Service(处理数据用的) ● dao类上使用Repository 他们都是只有一个value属性。value属性用来指定bean的id也就是bean的名字。 4 Spring注解的使用 如果使用以上的注解, 就不必再每一个类都使用一个bean标签管理. 如何使用以上的注解呢 ● 第一步加入aop的依赖 ● 第二步在配置文件中添加context命名空间 ● 第三步在配置文件中指定扫描的包 ● 第四步在Bean类上使用注解 第一步加入aop的依赖 当加入spring-context依赖之后会关联加入aop的依赖。所以这一步不用做。 第二步在配置文件中添加context命名空间, 分别是xmlns:context和xsi:schemeLocation ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd /beans第三步在配置文件中指定要扫描的包 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.sunsplanter.bean/ /beans第四步在Bean类上使用注解 package com.sunsplanter.bean;import org.springframework.stereotype.Component;Component(value userBean) public class User { }第四步要小心, 存在两个两个Component 第二个时上面学习时自己建的,一定要选第一个. 第五步编写测试程序 package com.sunsplanter.test;import com.sunsplanter.bean.User; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class AnnotationTest {Testpublic void testBean(){ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);User userBean applicationContext.getBean(userBean, User.class);System.out.println(userBean);} }成功输出一个对象. 如果注解的属性名是value那么value是可以省略的。 例如: package com.sunsplanter.bean;import org.springframework.stereotype.Component;Component(userBean) public class User { }package com.sunsplanter.test;import com.sunsplanter.bean.User; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class AnnotationTest {Testpublic void testBean(){ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring.xml);User userBean applicationContext.getBean(userBean, User.class);System.out.println(userBean);} }仍能输出一个User对象. 甚至: 如果把value属性彻底去掉该类在被创建成bean时会被自动指定一个bean id(名字), 默认名字的规律是Bean类名首字母小写即可。 多个包需要扫描的情况 办法1(常用): 指定需要扫描的多个包的共同父包,扫描这个共同父包. 缺点是如果父包有不需要扫描的包,则会牺牲一些效率. 办法2: 逗号分隔多个需要扫描的包: context:component-scan base-packagecom.sunsplanter.bean,com.sunsplanter.dao/5 根据注解类型选择性实例化Bean 假设在某个包下有很多Bean有的Bean上标注了Component有的标注了Controller有的标注了Service有的标注了Repository. 目标: 现在由于某种特殊业务的需要只允许其中所有的Controller参与Bean管理其他的都不实例化。 这里为了方便将这几个类都定义到同一个java源文件中了: package com.sunsplanter.spring6.bean3;import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service;Component public class Selective_Instantiation_of_Objects{public Selective_Instantiation_of_Objects() {System.out.println(A的无参数构造方法执行);} }Controller class B {public B() {System.out.println(B的无参数构造方法执行);} }Service class C {public C() {System.out.println(C的无参数构造方法执行);} }Repository class D {public D() {System.out.println(D的无参数构造方法执行);} }Controller class E {public E() {System.out.println(E的无参数构造方法执行);} }?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd !-- use-default-filterstrue 表示使用spring默认的规则只要有Component、Controller、Service、Repository中的任意一个注解标注则进行实例化。 use-default-filtersfalse 表示不再spring默认实例化规则即使有Component、Controller、Service、Repository这些注解标注也不再实例化。 context:include-filter typeannotation expressionorg.springframework.stereotype.Controller/ 表示只有Controller进行实例化。--context:component-scan base-packagecom.sunsplanter.bean use-default-filtersfalsecontext:include-filter typeannotation expressionorg.springframework.stereotype.Controller//context:component-scan/beans测试程序: Test public void testChoose(){ApplicationContext applicationContext new ClassPathXmlApplicationContext(spring-choose.xml); }输出注解为Controller的B,E构造方法执行. 目标: 现在由于某种特殊业务的需要除了Controller外的所有注解都参与Bean管理仅Controller实例化。 !-- use-default-filterstrue 表示使用spring默认的规则只要有Component、Controller、Service、Repository中的任意一个注解标注则进行实例化。(不写默认是true) use-default-filtersfalse 表示不再spring默认实例化规则即使有Component、Controller、Service、Repository这些注解标注也不再实例化。 context:exclude-filter typeannotation expressionorg.springframework.stereotype.Controller/ 表示将Controller排除出实例化的范围。--context:component-scan base-packagecom.sunsplanter.beancontext:exclude-filter typeannotation expressionorg.springframework.stereotype.Controller//context:component-scan

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业报刊网站建设情况总结阿里网站seo

第一部分:跨界电商的兴起与网络安全挑战 1.1 跨界电商的崭露头角 跨界电商已经成为全球贸易的新引擎,企业纷纷踏上了拓展国际市场的征程。 1.2 网络安全的不容忽视 跨界电商的增长也伴随着网络安全威胁的增加。黑客攻击、数据泄露和欺诈行为等风险呈…

不符合网站外链建设原则的是个人备案网站能用公司

文章目录 前言音频服务audioserver音频数据链路hal 提供什么样的作用 前言 Android 的音频是一个相当复杂的部分。从应用到框架、hal、kernel、最后到硬件,每个部分的知识点都相当的多。而android 这部分代码在版本之间改动很大、其中充斥着各种workaround的处理&a…

摄影学习网站连云港市建设局网站安全员考试

文章目录 前言一、安装与运行命令行运行 python 文件 二、变量和简单数据类型2.1 变量命名规则2.2 字符串2.2.1 字符串的简单运算title()upper()、lower() 2.2.2 合并(拼接)字符串2.2.3 使用制表符或换行符来添加空白2.2.4 删除空白2.2.5 Python 2 中的 …

北京seo网站内部优化电子商务网站建设的定义

随着科技的不断进步和创新,无人机技术在各个领域中都发挥着越来越重要的作用。其中,光伏电站对于无人机的应用也成为了行业内的高效运维方式之一,凭借无人机卓越的性能和可靠性,有效的减少了人力运维的危险性和延迟性,…

2025.9.29

今天又是非常疲惫的周一,一天都是满课,上午两节,下午三个半小时,上完课之后我去好想来买零食,回来时候拿外卖,吃完饭后去洗澡,然后录下午课的视频。

网站开发使用的工具类做网站的技术理论

const用法主要是防止定义的对象再次被修改,定义对象变量时要初始化变量 下面我就介绍一下几种常见的用法 1.用于定义常量变量,这样这个变量在后面就不可以再被修改 const int Val 10; //Val 20; //错误,不可被修改 2. 保护传参时参数不被修改,如果使用引用传递参数或按地址传…

网站开发的语言做网站个人

From: http://www.cnblogs.com/caosiyang/archive/2012/08/21/2648870.html printf()和fprintf()这些输出函数的参数是可变的,在调试程序时,你可能希望定义自己的参数可变的输出函数, 那么可变参数宏会是一个选择。 C99中规定宏可以像函数…

深入解析:前端笔记:HTML output标签介绍及用法

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

成都网络推广建站深圳华强北商业圈

使用基于全球知名的 Corel Painter 画笔技术构建的 100 款逼真像素画笔,以全新的方式将您独特的想法变为现实!试用 CorelDRAW 的全新美术画笔,探索您的创意想法。 使用 CorelDRAW 中现在可用的远程字体,畅享更多创作自由&#xf…

无锡网站程序北京设计公司招聘信息

前言 在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、IO复用、信号驱动IO以及异步IO。本篇文章主要介绍IO的基本概念以及阻塞IO、非阻塞IO、IO复用三种模型,供大家参考学习。 一、什么是IO 计算机视角理解IO: 对于计…

设计模版网站wordpress侧栏插件

1.获取SDK,并写入常量表 2.引入MiPush_SDK_Sever.jar文件和json-simple-1.1.1.jar 3.开发服务端代码(这里是用别名进行推送) /*小米推送*//** * 指定alias推送(单个或多个) * * param messagePayload 消息 * param title 消息标题 *…

如何创建一个自己的平台北京网站建设 优化

题目: $num$_GET[num]; if(!is_numeric($num)) { echo $num; if($num1) echo flag{**********}; }关键在于绕过is_numeric,PHP中字符串与数字弱比较,会将字符串转换为数字,截至到非数字字符,如果第一个字符就是非数字…

Linux CentOS 7 安装 zip-3.0-11.el7.x86_64.rpm 详细步骤(命令行教程)​(附安装包)

Linux CentOS 7 安装 zip-3.0-11.el7.x86_64.rpm 详细步骤(命令行教程)​(附安装包)​一、先确认你的系统是 CentOS 7 或 RHEL 7 这个包名字里有 el7,说明它是专门给 ​CentOS 7​ 或者 ​RHEL 7​ 用的。如果你不是…

网站开发logo关键字排名优化工具

三星有子初长成气宇轩昂 秀美俊逸减之一分则嫌柔增之一分则嫌赘2019年8月7日于纽约巴克莱发布Galaxy Note 10系列用简约 重构美三星Galaxy Note 10与Galaxy Note 10分别搭载了6.3英寸和6.8英寸的超感官全视曲面屏,均采用单摄挖孔屏,开孔位于屏幕正上方。…

用动物做logo的旅游网站小说网站如何做书源

原标题:特斯拉最大的对手竟是华为?Hicar鸿蒙OS无人驾驶技术不再一家独大!短短几个月的时间,特斯拉的市值翻了近4倍,对于一个超级企业来说一切都显得那么不可思议,如果把它单纯的看成一家车企,恐…

怎么样让百度收录网站企业网站icp

概述 通过本文,您将学会如何利用 Streamlit 框架快速搭建前端交互界面。该界面将集成图像上传功能,让用户可以方便地提交待处理图片。在后端,我们将借助 Amazon Bedrock 的 Message API,调用 Claude 3 家族中的 Sonnet 模型对图像…

高维前缀和 笔记

你知道学完一个东西不写笔记会有什么后果吗?——直接失忆。

Unbranched

简化题意 给定一个有 \(N\) 个顶点、\(M\) 条边的无向图,顶点有标签,边没有标签。该图不一定是简单图,也不一定是连通图。请计算满足以下条件的图的数量,并将结果对 \(10^9+7\) 取模:不包含自环。 所有顶点的度数…

免费申请网站空间教学网站开发背景

目录 1. 数据结构1-1. 动态字符串(SDS)1-2. intset1-3. Dict 2. 网络模型3. 通信协议4. 内存策略 1. 数据结构 1-1. 动态字符串(SDS) 我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字…

必应搜索引擎入口seo现在还有前景吗

打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目。 方法二: 1、添加/删除程序中彻底删除sql server。 2、将没有删除…