Spring全家桶的常用注解详解

发布时间:2022-12-04 JAVA SPRING SPRINGBOOT

1. 基础复习

1.1 注解是什么?

注解是一种特殊的Java构造,也是一种引用数据类型,编译后也是生成.class文件。

自定义注解格式

[修饰符列表] @interface 注解类型名{

}

注解可以用在类,方法,字段,参数,变量,构造方法或包上;注解也可以用在注解上。

1.2 注解的组成部分

1.2.1 四个元注解

元注解:用来标注“注解类型”的注解

  1. @Target
    用来标注“被标注的注解”可以出现在哪些位置上。
    例如:@Target(ElementType.METHOD)
    表示“被标注的注解”只能出现在方法上。
    @Target(value = {ElementType.TYPE, ElementType.FIELD})
    表示“被标注的注解”可以出现在类上或者字段上

  2. @Retention
    用来标注“被注解的注解”最终保存在哪里。
    @Retention(RetentionPolicy.SOURCE):表示该注解只被保留在java源文件中。@Retention(RetentionPolicy.CLASS):表示该注解被保存在class文件中。@Retention(RetentionPolicy.RUNTIME):表示该注解被保存在class文件中,并且可以被反射机制所读取。
    这里注意:所有我们自定义(包括框架)的注解都要使用RetentionPolicy.RUNTIME,因为后面我们要通过反射去实现它的逻辑;一般由JDK自带的注解都是RetentionPolicy.SOURCE,因为它们的逻辑是JVM去实现的。

  3. @Inherited
    表明使用了@Inherited注解的注解,所标记的类的子类也会拥有这个注解

  4. @Document
    表明该注解标记的元素可以被Javadoc 或类似的工具文档化

1.2.2 注解内部属性

注解的代码块中可以有属性吗?
注解仅支持基本数据类型、字符串和枚举;这个枚举可以在注解内部定义。
注解中所有属性都定义为方法,可以提供默认值

例如这样的一个注解

@Target(value = {ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno {
    public enum Priority {LOW, MEDIUM, HIGH}
    public enum Status {STARTED, NOT_STARTED}
    String author() default "guaige";
    double price() default 300.0;
    Priority priority() default Priority.LOW;
    Status status() default Status.NOT_STARTED;
}

我们这么去使用它

@MyAnno(author = "laoba", priority = MyAnno.Priority.HIGH)
public void testMethod1() {

}

如果注解只有一个String类型属性,它的名字必须为value,我们在使用注解,给这个属性赋值时可以不用写字段名。

@interface Author{
	String value();
}

@Author("Yashwant")
public void someMethod() {

}

1.3 注解如何起作用?

首先我们看最常见的注解@Override的定义代码

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {

}

发现没有,这个注解里没有定义任何业务逻辑。
如果注解不包含逻辑,那么必须有其他地方能读取到我们使用了这个注解,并为其添加逻辑。

像@Override这样的标准注解,它的逻辑就是JVM所写的。

那我们自定义的注解呢?
还拿上面自定义的MyAnno注解举例。

@Target(value = {ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno {

    public enum Priority {LOW, MEDIUM, HIGH}
    public enum Status {STARTED, NOT_STARTED}
    String author() default "guaige";
    double price() default 300.0;
    Priority priority() default Priority.LOW;
    Status status() default Status.NOT_STARTED;
    
}

我们需要使用反射,反射提供了Class,Method和Field对象,他们都有一个
getAnnotation()方法,返回的是指定的注解对象。
除了getAnnotation(),其余的还有
isAnnotationPresent():判断当前元素是否被指定注解修饰
getAnnotations():返回所有的注解(一个Annotation数组)

创建一个类,写两个方法,一个加上这个注解,一个不加。

public class MyTest {

    @MyAnno(author = "laoba", priority = MyAnno.Priority.HIGH)
    public void testMethod1() {

    }

    public void testMethod2() {
        
    }
}

写一个方法获取类中被@MyAnno注解的方法,拿到属性值。

class AnalysisAnno {

    public void customer() {
        Class<MyTest> myTestClass = MyTest.class;
        for (Method method : myTestClass.getMethods()) {
            MyAnno annotation = method.getAnnotation(MyAnno.class);
            if (annotation != null) {
//                使用注解的方法的名字
                System.out.println(method.getName());
//                属性值
                System.out.println(annotation.author());
                System.out.println(annotation.priority());
                System.out.println(annotation.price());
            }
        }
    }

    public static void main(String[] args) {
        AnalysisAnno analysisAnno = new AnalysisAnno();
        analysisAnno.customer();
    }
}

除了能拿到注解的属性值,当然还可以加入逻辑了。
比如我们想让上面被注解的这个方法,必须没有任何参数,否则报错。

    public void customer2() {
        Class<MyTest> myTestClass = MyTest.class;
        for (Method method : myTestClass.getMethods()) {
            MyAnno annotation = method.getAnnotation(MyAnno.class);
            if (annotation != null) {
                if (method.getParameterCount() != 0) {
                    throw new RuntimeException("被@MyAnno注解的方法不能有参数!");
                }
            }
        }
    }



2. 讲讲常用注解

2.1 Spring IOC相关

@Controller

放在控制层实现类的上面,创建控制器对象,注入到ioc容器中。

@Service

放在业务层实现类的上面,创建业务逻辑层对象,注入到ioc容器。

@Repository

放到dao层实现类上面,创建dao对象注入ioc容器。现在使用mybatis框架,dao对象是mybatis动态代理生成的,@Repository不再使用了。
不过依然可以和@Mapper注解一同使用。

@Component

放在类的上面,创建此类的对象,注入到ioc容器中,这个是针对普通的类的。

@Autowired

引用类型赋值,支持byName与byType的赋值方式,默认为byType。
该注解可以放在属性上或是方法上。

@Qualifer

引用类型赋值,使用byName方式赋值。
@Qualifer和@Autowired都是spring框架提供的

@Resource

是jdk提供的注解,引用类型的自动注入。
默认使用byName,如果byName失败,再使用byType注入。

@Bean

声明对象,将其注入到ioc容器。一般搭配@Configuration使用。

@Bean和@Autowired的区别:
@Bean是放入ioc容器,@Autowired是从ioc容器中拿出



2.2 Spring AOP相关

@Aspect

表示被注解的类是切面类。是一种AOP思想。

有五种常用的通知注解:

@Before:前置通知

@After:后置通知,无论方法什么情况都会执行,优先级高于@AfterReturning

@AfterReturning:后置通知,在方法完全执行结束后执行

@Around:环绕通知,一般在这里执行切点逻辑

@AfterThrowing:抛出异常通知


@Pointcut

定义一个切入点表达式。用法是将此注解写在一个方法之上,之后所有的切入点表达式都可以用这个方法代替。

@Aspect
public class MyTest {

    @Pointcut("execution(* *..service.*.*(..))")
    private void myPoint(){

    }

    @After("myPoint()")
    public String myDept() {
        return null;
    }
    
}



2.3 Spring其他

@Value

基本数据类型赋值(八大基本数据类型及其包装类,以及String)
可以数据写死赋值

@Value("李四") 
private String name

也可以读配置文件(properties或yml)赋值

@Value("${server.port}")
private Integer port
@PropertySource

指定properties文件的位置
读取properties属性配置文件,可以实现外部化配置。
一般搭配@Value一起使用。

@ImportResource

不常用。作用是导入其他的xml配置文件。

@Transactional

在业务方法上使用@Transactional,使方法有事务功能

@EnableTransactionManager

在主启动类上加上这个注解,让上面的@Transactional注解生效。


2.4 Mybatis相关

@Mapper

放在mapper接口的上面,让mybatis找到mapper接口,通过动态代理创建其对象。

@MapperScan

放在主类(Application)上面,指定扫描的包,将这个包中所有接口都创建代理对象,注入ioc容器。

@Param

在mapper接口方法的形参前面,作为其命名参数在mapper的xml文件中使用。


2.5 SpringMVC相关

@ResponseBody

放在方法的上面,表示方法的返回值是数据。
将Java对象转换为json数据返回给前端。

@RequestBody

把post请求的请求体里的json数据读取为Java对象进行使用。

@RequestParam

常用于get请求,表示这个参数必须要有值,否则报错(400)
也可以用于指定收参数的名字

@GetMapping("/detail")
public String Detail(@RequestParam("id") String userId) {
    return null;
}

例如这里,前端给我们传的是id,我们通过@RequestParam接收了id,但是方法形参可以任意,比如我们这里写的是userId

@RequestMapping

配置请求路径,可以放到Controller类上面,或者Controller类的接口方法上。


2.6 SpringBoot相关

@Configuration

放在一个类的上面,表示这个类作为配置文件使用。

@SpringBootApplication

复合注解,由
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
组成

@SpringBootConfiguration:使用此注解标注的类,可以作为配置文件使用,可以使用@Bean对象注入到容器。

@EnableAutoConfiguration:启用自动配置,把Java对象配置好,注入到ioc容器中。

@ComponentScan:包扫描器,找到注解,根据注解的功能创建对象、给属性赋值等等。
默认扫描的包:@ComponentScan注解的类 所在的包和子包。


@ConfigurationProperties

把配置文件的数据映射为Java对象,直接注入给类中属性。(不常用)

@PathVariable

从REST风格的url中获取数据,例如

@GetMapping("/detail/{id}")
public String detail(@PathVariable("id") String id) {
    return null;
}
@GetMapping

@RequestMapping(method=RequestMethod.GET)

@PostMapping

@RequestMapping(method=RequestMethod.POST)

@PutMapping

@RequestMapping(method=RequestMethod.PUT)

@DeleteMapping

@RequestMapping(method=RequestMethod.DELETE)

@RestController

复合注解,是@Controller 和@ResponseBody组合。
在类的上面使用@RestController,表示所有方法上都加上了@ResponseBody

@Valid

这个注解通常用于post请求,用一个类接收前端的json参数时,对参数进行数据验证。参数前有了这个注解,接收参数的RO类里的注解就可以生效。

常用的几个做参数验证的注解

@NotBlank:不能为空或空字符串
@NotNull:不能为空值,可用在所有类型上面
@Min(value) :被注解的字段必须是数字,必须大于指定的最小值
@Max(value) :被注解的字段必须是数字,必须小于指定的最大值
@Size(min,max) :被注解的字段必须是字符串、集合或数组,长度在min和max之间
@Length(min,max) :被注解的字符串的长度在min与max之间。
@NotEmpty:用在String或集合上面,被注解的字段不为null且大小(长度)不为0
@Range(min,max) :被注解的字段必须是数字,值在min与max之间。

更多相关推荐


OkHttp保存session

发布时间:2022-10-23 JAVA OKHTTP SERVLET
 如果不保存session的话,在每次通过http访问服务器,服务器都会新开一个线程,线程中不保存前一次访问留下的session记录。而对于获取验证码等操作,这些都需要上一次访问服务器记录的session,如不保存session的话那么在服务器端对应的验证码则为空。2022-10-2318:03:09.377DEBUG640---[nio-8080-exec-3]com.tian.sms.util...

电商项目(Day06)

发布时间:2022-10-09 MYBATIS JAVA MYSQL
1.店铺信息编辑编写shopDao//更新店铺信息返回1成功-1失败intupdateShop(Shopshop);//通过shopid查询店铺ShopqueryByShopId(longshopId);编写shopDao.xml通过定义resultMap来实现数据库中所需数据一一注入。使用SQL92语法进行多表查询。&lt;?xmlversion="1.0"encoding="utf-8"?&g...

SpringBoot整合Mybatis与c3p0

发布时间:2022-10-18 MYBATIS SPRING BOOT SPRING
1.导入maven依赖 &lt;dependency&gt;&lt;groupId&gt;org.projectlombok&lt;/groupId&gt;&lt;artifactId&gt;lombok&lt;/artifactId&gt;&lt;version&gt;1.18.24&lt;/version&gt;&lt;/dependency&gt;&lt;!--mysqljar包依赖--&g...

二叉树查找算法(一)

♥(。→v←。)♥本人小玥,大数据专业,算法小白一个,努力学习中!!!🤒🤒🤒点个关注,咱们来玥方长!!!🤖题目:整数1,2,3,...组成了一颗特殊二叉树,如图7.7所示,已知这个二叉树的最后一个结点为n。设计一个算法输入m和n,求结点m所在的子树(简称结点m的子树)中一共包括多少个结点(假设n,m均为正整数,n&lt;m)?例子:输入:n=12,m=3输出:"结点m所在的子树中共有4个结点一、🥳...

C# 中的依赖注入模式

发布时间:2022-11-15 JAVA JVM C#
依赖注入模式–DI(*)首先,“依赖注入模式”是一种软件设计模式。它被称为“模式”,因为它建议针对特定问题的低级特定实现。该模式旨在解决的主要问题是如何创建“松散耦合”的组件。它通过将组件的创建与其依赖项分开来实现这一点。此模式中有四个主要角色(类):Client:客户端是一个组件/类,它想要使用另一个组件提供的服务,称为Service.Service-Interface:服务接口是描述服务组件提...

java算法(一)——排序算法(下)之 插入排序

发布时间:2016-08-14 JAVA 插入排序 JAVA算法 排序算法
插入排序算法通过比较和插入来进行排序,其流程如下:(1)首先对数组的前两个数据进行从大到小排列(2)接着将第3个数据与排好的前两个数据进行比较,将第3个数据插入合适的位置。(3)然后,将第4个数据插入已排序的前3个数据中。(4)不断重复上述过程。staticvoidinsertionSort(inta[]){inti,j,t,h;for(i=1;i&lt;a.length;i++){t=a[i];...

跟南桑深入探究JVM

发布时间:2022-10-20 JAVA 算法 JVM
1.JVM的学习方式请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM?什么是栈溢出?怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?谈谈JVM中,类加载器的认识?JVM的位置JVM的体系结构类加载器双亲委派机制沙箱安全机制NativePC寄存器方法区栈三种JVM堆新生区、老年区永久区堆内存调优GC常用算法JMM总结2.JVM的体系结构3.类加载...

泽西岛客户:测试外部呼叫

发布时间:2020-05-17 算法 LEETCODE 设计模式 PYTHON JAVA
吉姆和我在上周一直在做一些工作,其中涉及调用neo4j的HA状态URI来检查实例是否是主/从属,并且我们一直在使用jersey-client。该代码大致如下所示:classNeo4jInstance{privateClienthttpClient;privateURIhostname;publicNeo4jInstance(ClienthttpClient,URIhostname){this.ht...

创建者模式之原型模式

发布时间:2021-11-27 JAVA 设计模式 原型模式
原型模式浅克隆概述用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象结构原型模式包含如下角色抽象原型类:规定了具体原型对象必须实现的clone()方法具体原型类:实现了抽象原型类的clone方法,他是可被复制的对象访问类:使用具体原型列红的clone()方法来复制新的对象接口类图如下所示实现原型模式的克隆分为浅克隆和深克隆浅克隆:创建一个新的对象,新对象的属性和原来对...

Java中用字符串常量赋值和使用new构造String对象的区别

发布时间:2017-02-18 JAVA
Stringstr1="ABC";Stringstr2=newString("ABC");Stringstr1=“ABC”;可能创建一个或者不创建对象,如果”ABC”这个字符串在javaString池里不存在,会在javaString池里创建一个创建一个String对象(“ABC”),然后str1指向这个内存地址,无论以后用这种方式创建多少个值为”ABC”的字符串对象,始终只有一个内存地址被分配,...

给基本类型和String 数组赋初值

发布时间:2009-12-01 C++ JAVA C C#
基本数据类型数组直接赋值如int[]arr=newint[3];arr[0]=1;arr[1]=2;arr[2]=3;也可以初始化int[]arr={1,2,3};引用数据类型String[]strArr=newString[3];strArr[0]=newString("a");strArr[1]=newString("b");strArr[2]=newString("c");也可以String...

Java中WebService实例

发布时间:2015-03-01 RUNTIME JAVA 开发工具
WebServices是由企业公布的完毕其特定商务需求的在线应用服务,其它公司或应用软件可以通过Internet来訪问并使用这项在线服务。WebService的关键技术和规则:1.XML:描写叙述数据的标准方法.2.SOAP:表示信息交换的协议(简单对象訪问协议).3.WSDL:Web服务描写叙述语言.4.UDDI:通用描写叙述、发现与集成,他是一种独立于平台,基于XML语言的用于在互联网上描写叙...

java开发webService完整例子

发布时间:2014-07-15 JAVA 开发工具 PYTHON
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt;java调用webservice的各种方法总结    现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!!   由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用方法。    一、利用jdkweb服务api实现,这里使用基于SOAPm...

初始cfx开发webservice, 简单实例应用

发布时间:2014-04-07 JAVA
项目结构图:步骤一: 添加maven 依赖包&lt;projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache....

eclipse+webservice开发实例

发布时间:2014-08-21 RUNTIME JAVA 开发工具
1.參考文献:1.利用Java编写简单的WebService实例 http://nopainnogain.iteye.com/blog/7915252.Axis2与Eclipse整合开发WebService http://tech.ddvip.com/2009-05/1242968642120461.html3.http://blog.csdn.net/lightao220/article/det...

Java jdk的下载与安装

发布时间:2022-03-21 JAVA 后端
1.下载JDK下载链接:点击打开链接(http://www.oracle.com/technetwork/java/javase/downloads/index.html)下载成功后是这个文件:双击打开,进入安装安装在C盘或者其他盘,关系不大,记得自己装在哪个位置就行,因为等会儿要添加环境变量。一路安装~2.配置环境变量桌面—我的电脑—右键属性—高级设置——环境变量有的电脑是这样打开的:开始-控制...

JDK的卸载和安装

发布时间:2021-03-15 JAVA笔记 JAVA JDK
卸载JDK删除java的安装目录删除JAVA_HOME删除path下关于java的目录cmd运行java_version查看安装JDK百度搜索下载地址同意协议下载电脑对应的版本安装JDK选择下载路径配置环境变量我的电脑-右键-属性环境变量-JAVA—HOME配置path变量测试JDK安装成功打开cmdjava-version...

FactoryBean的使用

发布时间:2017-04-11 JAVA
FactoryBean的使用​一般情况下,Spring通过反射机制利用用户指定的class来实例化Bean,但有的情况下实例化Bean过程比较复杂,如果使用需要大量配置,或者使用@Bean在注释方法中需要写大量代码。Spring为此给我们提供了一个org.springframework.bean.factory.FactoryBean&lt;T&gt;的工程类接口,用户可以实现该接口用于实例化一个...

申请百度问答合作说明

发布时间:2022-10-29 SEO 百度 搜索引擎 开发语言 JAVA
申请条件资质准入——申请者拥有移动站点,并完成企业类型ICP备案,是经国家主管部门批准的正式运营企业质量准入——网站移动端体验良好,未命中搜索规则算法,符合《百度移动搜索落地页体验白皮书》的要求权威准入——在申请领域具备一定的知名度、专业度、权威性能力准入——有对客观问答内容的规模化生产、技术提交、运营维护能力,愿意紧密配合专业问答项目组统一运营管理特殊说明:1. 不接受人医、健康、母婴、医美、食...

SpringBoot整合ES高级查询

发布时间:2020-04-21 SPRINGBOOT ES
SpringBoot整合ES创建SpringBoot项目,导入ES6.2.1的RestClient依赖和ES依赖。在项目中直接引用es-starter的话会报容器初始化异常错误,导致项目无法启动。如果有读者解决了这个问题,欢迎留言交流&lt;!--ES客户端--&gt; &lt;dependency&gt; &lt;groupId&gt;org.elasticsearch.client&lt;/g...

若依生成代码

发布时间:2022-11-04 JAVA
若依的快速生成代码通过git上直接拉去到本地,这里通过【输入若依官网上的GitHub地址来实现直接拉去创建】https://gitee.com/y_project/RuoYi.git然后创建数据库并且连接,然后启动后端(使用RuoYiApplication来启动,启动位置在admin的包下),再启动前端(ui的包下的packjson指令当中的dev指令),可能需要安装一个命令,在终端使用npmin...

java版本+企业工程项目管理系统源码+项目模块功能清单+spring cloud +spring boot

发布时间:2022-11-23 JAVA SPRING BOOT 开发语言
    工程项目各模块及其功能点清单一、系统管理  1、数据字典:实现对数据字典标签的增删改查操作  2、编码管理:实现对系统编码的增删改查操作  3、用户管理:管理和查看用户角色  4、菜单管理:实现对系统菜单的增删改查操作  5、角色管理:管理和查看用户角色的权限  6、系统消息:查看系统消息二、系统设置  1、项目前期模板设置:实现对项目前期模板文档的增删改查操作  2、项目权限管理:管理各...

企业电子招标采购系统项目说明+开发类型+解决方案+功能描述+二次开发+spring cloud

发布时间:2022-11-24 JAVA SPRING CLOUD SPRING BOOT
项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度更快。过招投标文件电子化,节约招标成本,提升企业的资金节约率。开发类型电子招标采...

maven结构的具体实施以及心得体会

发布时间:2022-11-23 大数据 JAVA MAVEN
Hello,大家好,我呢是来自双非本科的一名计算机学生,作为一名大四的学长,也是刚刚学了maven框架那接下来我们就以一个学生的角度来谈谈对maven的一些经验以及告诉大家不能踩的·坑吧!目录一、maven简介二、maven配置以及修改三、idea里的maven的配置以及使用四、测试案例一、maven简介    maven最主要体现在两个词上:项目和管理。据我们实训老师说maven其实给整个项目开...

Java Web开发框架Spring+Hibernate整合效果介绍(附源码)(已过期,有更好的)

发布时间:2013-12-31 JAVA JSON 数据库
       最近花了一些时间整合了一个SpringMVC+springAOP+springsecurity+Hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过JavaEE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显...

Java添加条形码到PDF表格

发布时间:2022-06-07 编程 程序员 开发语言 MAVEN JAVA
条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以操作PDF文件为例,介绍如何在编辑表格时,向单元格中添加条形码。【程序环境】本次功能测试中,使用FreeSpire.PDFforJava。实现功能的大致 思路 :生成条形码,将条形码保存为图片,然后在PDF中的表格单元格中插入条码图片。S...

psycopg2.pool.PoolError: connection pool exhausted

发布时间:2022-11-08 JAVA 高性能的PYTHON 开发语言 数据库
psycopg2.pool数据库连接池用完的两种情况:sql报错,导致数据库的链接putconn失败,没有将conn添加到数据连接池中真的有那么连接建立,假设连接池有100个数据库连接,同时有101个查询需要链接,这时候肯定是会报链接池用完的,这时候加连接池数量跟数据库连接数就可以了问题1:出现的原因,查询报错,添加conn回连接池失败源码:self._pool.append(conn)将这个连接...

Spring注解说明

发布时间:2021-08-13 SPRINGBOOT STRUTS JAVA SPRING
1、@controller控制器(注入服务)        用于标注控制层,相当于struts中的action层        使用@Controller注解,在对应的方法上,视图解析器可以解析return的jsp,html页面,并且跳转到相应页面。若返回json等内容到页面,则需要加@ResponseBody注解@RestController注解        相当于@Controller+@R...

js中forin 和for each 的用法,for each语句是什么

发布时间:2022-09-15 JAVASCRIPT 神经网络 TYPESCRIPT JAVA 前端
typescript怎么定义全局的函数TypeScript有两种模块化方式,一种是使用ES6的import/export及其TS对这种语法的微小扩展;另一种方式是使用TS特有的namespace(命名空间)。在分析这两种模块化方式之前,我先推荐使用第一种方式,因为第二种方式涉及到模块引用顺序的问题(可以通过///来解决,但感觉不如import爽。如果使用namespace方式的模块化,那么所有东西...

java ajax 上传 加进度条

发布时间:2010-11-17 CSS JSON AJAX SERVLET JAVA
项目中要用到上传.同时要有进度条提示从网上找了些解决方案自己学习了下.做个总结:上传过程中使用到的是commons-fileupload-1.2.1.jar和commons-io-1.4.jar上传页面中有一个form表单设置enctype="multipart/form-data"同时放置一个隐藏的iframe同时设置表单的target为iframe的名称.从而达到伪ajax提交。进度条:我们在...

聊聊RPC及其原理

发布时间:2017-11-08 大数据 JAVA 操作系统
  什么是RPC?RPC是RemoteProcedureCall的缩写,像Client-Servier一样的远程过程调用,也就是调用远程服务就跟调用本地服务一样方便,一般用于将程序部署在不同的机器上,供客户端进行调用。就像一个request-response调用系统一样简单。在面向对象编程的程序中,RPC也可以用Remotemethodinvocation(RMI)来展现。为什么用它呢,因为随着分...

RPC

发布时间:2018-06-06 大数据 JAVA 操作系统
什么是RPC?RPC是RemoteProcedureCall的缩写,想Client-Servier一样的远程过程调用,也就是调用远程服务就跟调用本地服务一样方便,一般用于将程序部署在不同的机器上,供客户端进行调用。就像一个request-response调用系统一样简单。在面向对象编程的程序中,RPC也可以用Remotemethodinvocation(RMI)来展现。为什么用它呢,因为随着分布式...

Translation无法使用;TTK更新失败

发布时间:2022-11-20 JAVA UTIL
国内服务器停止换个地址修改C:\Windows\System32\drivers\etc \hosts文件把这两行放到文件最后;IP不行就换下面的试试#解决翻译网络问题172.253.124.90translate.google.com172.253.124.90translate.googleapis.com=================================更多IP可以通过插件访...

关于SpringCloudAlibaba,看阿里这篇笔记真香

发布时间:2022-11-09 架构 SPRING CLOUD 开发语言 微服务 JAVA
有人调侃我们说:程序员不如送外卖。送外卖是搬运食物,自己是搬运代码,都不产出新的东西……透支体力,又消耗健康,可替代性极强,30岁之后就要面临被优化的危险……想跳槽,但是更高的平台难进,同级别的平台又是重复……想利用业余时间学习提升,但是自己能力有限,很难形成知识体系…这些其实都是初级程序员面临的困境,当你提高自身能力,登上更高的层级之后,无论薪资还是发展都会有很大的提升。那么问题来了,怎么才能度...

javascriptBOM基础之window(6)

发布时间:2013-02-01 JAVA
&lt;html&gt;&#13;&lt;head&gt;&#13;&lt;title&gt;BOM基础之window对象&lt;/title&gt;&#13;&#13;&#13;&lt;/head&gt;&#13;&lt;body&gt;&#13;&lt;br&gt;js运行在浏览器中,js提供了一些对象专门用于与浏览器窗口就行交互。这些对象主要包括&lt;br&gt;&lt;fontcolor...

java基础总结第六部分(\(^o^)/~)

发布时间:2022-10-17 JAVA JVM 开发语言
java基础总结第六部分1.for循环拥有确定循环次数的循环,使用for循环结构来操作语法:for(初始化;循环条件;循环步进){ //循环体}//执行步骤为1.初始化2.判断执行条件3.执行循环体4.循环步进5.继续下一步循环判断//示例,循环一百次for(inti=0;i&lt;100;i++){ System.out.print(i);//输出i,100次}//循环结构中只要求,两个;分号不...

Java基础知识第一季第一集

发布时间:2009-07-21 C++ WINDOWS C# ORACLE JAVA基础知识第一季 JAVA
当了这么多年的老师,手中送走了无数学生,自知水平不足,每日每时不敢有半点懈怠,希望通过自己的努力,能帮助我的学生迈出IT职业生涯的第一步。五年当中,虽有不少谬误,但自认为不辱使命,不敢说让每位同学都满意,但是还是赢得了大部分人的认同。现在就通过这个Blog,希望能将这几年当中教学的一些心得和各位分享,以一种闲话家常的形式,快乐的学习知识,这是我个人一直提倡的学习方法,当然限于本人水平有限,希望大家...

java基础总结-第五部分 (pAq)

发布时间:2022-10-17 JAVA
java基础总结-第五部分##1.循环结构为什么需要使用循环结构???处理一些重要的事情的时候需要使用循环结构2.while循环最基本的循环结构语法:while(循环条件){//循环代码块}//示例inti=10;while(i&gt;0){//i&gt;0时循环条件//其他代码i--;//促使循环停止的循环操作,i会慢慢变成小于0时,停止循环}1.循环结构的要素有两点-循环条件-循环操作(循环操...

java基础总结第四部分 (QAQ)

发布时间:2022-10-17 JAVA
java基础总结第四部分(‘|’)switch选择结构语法:switch(变量){ case变量值1: //变量值1时执行代码块,相当于if(变量==变量值1) break; case变量值2: //变量值2时执行代码块,相当于if(变量==变量值2) break; case变量值3: //变量值3时执行代码块,相当于if(变量==变量值3) break;//break的作用,跳出当前...

基于JSP的超市会员管理系统毕业设计

发布时间:2022-11-21 JAVAWEB JAVA 开发语言
技术:Java、JSP等摘要:科学技术的不断提高,计算机科学日渐成熟,其强大的功能已被人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。它已经深入到日常工作及生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。然而,虽然世界上拥有了多如牛毛的软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件来满足企业发展和需求。...

基于java高校社团管理系统毕业设计论文

发布时间:2022-11-21 JAVAWEB JAVA 开发语言 数据库
技术:Java、JSP等摘要:当前,大多数高校的社团信息管理都是采用纸质档案的方式来管理的,这样不仅不能长期的保存信息,而且在数据的查找上带来很大的不方便。在目前的网络技术和计算机技术的普及和信息管理的迅速发展,使用计算机,但总的趋势来实现。校园社区管理也可以支持用料计算机信息管理等,利用网络实现信息共享。这样不仅符合现代的管理要求,而且有助于将信息管理推向科学化、规范化。同时,用计算机去管理信息...

[leet code] Roman to Integer

Givenaromannumeral,convertittoaninteger.Inputisguaranteedtobewithintherangefrom1to3999.看着romannumeral是一头雾水,google过后知道是罗马数字,就是I,II,III,IV,V,VI,VII,VIII,IX,X...写report的时候有用到可是鬼知道有神马规律!于是这题连思考的时间都省了,只能上网...

day27 第七章 回溯算法

发布时间:2022-11-22 LEETCODE JAVA 算法
第七章回溯算法今日内容39.组合总和40.组合总和II131.分割回文串#if0classSolution{private:vector&lt;vector&lt;int&gt;&gt;result;vector&lt;int&gt;path;voidbacktracking(vector&lt;int&gt;&amp;candidates,inttarget,intsum,intstartInd...

绑定服务时什么时候调用onRebind

发布时间:2017-07-13 移动开发 JAVA
Serivce中onRebind被调用的时机非常特别,想知道什么时候onRebind被调用,能够接以下的次序来学习。最后自然就明确了!1.首先要知道。同一个服务既可能被启动也能够被绑定;2.Service中onRebind方法被调用。仅仅要符合两个必要条件即可   (1)服务中onUnBind方法返回值为true    (2)服务对象被解绑后没有被销毁。之后再次被绑定。以下举例说明:   例1:同...

给图片加水印

发布时间:2017-03-01 JAVA 图片
WaterImage.pressImage(path+“static\img\public\waterImage.png”,imageDir+"\"+logoId[j]);//pressImagePath:水印的图片路径//filePath:要加水印的原文件publicstaticvoidpressImage(StringpressImagePath,StringfilePath){try{//目...

JAVA生成JPG缩略图

发布时间:2007-12-02 JAVA 运维 人工智能
  在任何一个综合性网站,我们往往需要上传一些图片资料。但随着高分辨率DC的普及,上传的图片容量会很大,比如300万象素DC出来的文件基本不下600K。为了管理方便,大家可能不愿意每次都用ACDsee修改它,而直接上传到服务器。但是这种做法在客户端看来就没有那么轻松了,对于拨号上网的用户简直是一场恶梦,虽然你可以在图片区域设置wide和high!    问题的解决之道来了!我们可以在类中处理一张大...

SpringBoot入门(maven创建项目)

发布时间:2022-11-22 JAVA SPRING BOOT SPRING
1.SpringBoot简介    SpringBoot是由Pivotal团队提供的全新框架,qit设计的目的主要是用来简化Spring应用的初始搭建易婧开发过程。该框架使用了特定的方式进行配置,从而使开发人员不再需要定义样板化的配置。简单来说就是Springboot不是什么新的框架,他默认配置了很多框架的使用样式,就想Maven整合了所有Jar包,SpringBoot整合了所有框架。    Sp...