Spring 怎么获取自定义注解标注的方法

在我自己的项目中,我自定义一个注解

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface ExcelSheet {

    /**
     * 表格类别
     * @return
     */
    String value();

    /**
     * 创建的顺序(越大越往后执行)
     * @return
     */
    int index();
}

用来标注一些方法
例如:

 @ExcelSheet(value = "excel", index = 1)
    public void firstCallImpl() {
   //一些执行的代码
}

我现在的需求:
如果有多个方法被这个注解标注了那么,我能通过这个注解获取这个方法吗?
感谢大佬们的回答

2个回答

以aop around 为列,可以这样写,仅供参考

@Around("within(com.fly..* )")
 public Object around(ProceedingJoinPoint joinPoint)
        throws Throwable
    {
        String className = joinPoint.getTarget().getClass().getSimpleName();
        MethodSignature signature = (MethodSignature)joinPoint.getSignature();
        Method method = signature.getMethod();
        String methodName = new StringBuilder(className).append(".").append(method.getName()).toString();
        boolean isExcelSheet = method.isAnnotationPresent(ExcelSheet.class);
                。。。
        }   

知道你的需求了,换一种思路,使用你这个自定义注解的类是spring管理的,根据上下文获取bean的代码为:

 LOGGER.info("★★★★★★★★ ApplicationContext = {}", applicationContext);
        int i = 1;
        for (String beanName : applicationContext.getBeanDefinitionNames())
        {
            LOGGER.info("{}.\t{}", i, applicationContext.getBean(beanName));
            i++;
        }

下面用反射的方式去判断应该不难了吧,可以自己调试,供参考。

u014007345
asgkkigh 不过还是谢谢你,共同进步
大约一年之前 回复
u014007345
asgkkigh 你这个是调用的时候才会获得,但是我现在需要的效果是启动的时候,因为我写的时候不知道多少个方法调用了这个,我只知道我要调用含有这个注解的方法
大约一年之前 回复

补充下这个问题的需求:
上边这个问题的需求的原因:
我现在需要做一个excel ,一个excel里会有多个sheet ,我这个就是给注解的value相同的就会组成一个excel,而且根据index 的先后调用,到时候我就不用手动调用生成每个sheet。我只需要关注每个sheet是怎么生成的,达到解耦的目的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring 5.0 AOP 获取自定义注解
我按照百度上面的获取自定义注解 ,但是一直不能成功,求大神详解!!!!!
Spring中@Async注解的方法怎么取消
Spring中通过@Async注解的异步方法正在运行中怎么可以取消终止方法运行
spring boot 切面 自定义注解无法使用在启动类的问题
我想使用spring boot 的切面进行对controller的返回进行统一处理,然后切点的要求是controller类,使用了自定义的启用注解(EnableGlobal),且未使用自定义的排除注解(ExcludeGlobal),但又不想在每个controller上面都写一个@EnableGlobal,想把@EnableGlobal写在启动类上面,但是不生效,各位大神有没有什么好的解决办法? ![图片说明](https://img-ask.csdn.net/upload/201901/20/1547954239_882510.png) ![图片说明](https://img-ask.csdn.net/upload/201901/20/1547954124_540916.png)
aspectj如何才能根据自定义注解监听任意方法的调用
先说一下业务需求,当有新用户注册或用户信息变动时,发送新增或更新的消息到指定队列。 直接在业务代码里硬编码虽然可以实现此功能,但是本着追求完美的原则,我想有一个更优雅的处理方案。 于是,我想到了用AOP。 我写了一个自定义的注解:MessagePoint, 切面的切入点是:@Pointcut(value = "@annotation(com.hello.soa.event.MessagePoint)") 如果在controller的入口方法上写上注解MessagePoint是可以实现消息发布的, 但是controller层没有我想发布的数据, 所以我想通过在service层写注解MessagePoint来发布。 问题是,在spring里方法调用行为不被AOP机制控制。 如果不通过execution来配置切入点,怎么通过@annotation的切入点来监听任意方法上的 MessagePoint切点呢??
springboot,通过注解获取当前所在注解位置的方法的名称,谢谢
springboot,如何通过注解获取当前所在注解位置的方法的名称,谢谢各位帮忙解答。
spring中如何获取注入bean里方法上的注解?
有这样一个需求,在spring中,想用反射获取一个注入bean中方法的注解 一般情况下这样的操作就行了: Method method = bean.getClass().getMethod(...); Annotation[] annotations = method.getAnnotations(); 这样就能获取注解了。 但在spring中,这种方法是获取不到annotation的,原因是这里的bean其实是一个代理类。那么问题来了,我在这种情况下想要获取原方法的annotation,有什么好办法吗?
spring security 如何自定义logout
spring security 如何自定义logout.都需要重写哪些类?有没有大神有详细的例子啊?
参数上使用自定义注解在aop中无法获取到该参数
目标方法: ``` @ApiOperation(value="testRedis") @RequestMapping(value = "/testRedis", method = RequestMethod.GET) @DropDownSearch(key = "'bdt0010_'+#projectId") public Object redisTest(String projectId, @SearchKeyWord String value){ System.out.printf(""); return BaseResult.successResultCreate("test",bdt0010Service.redisTest(projectId)); } ``` 其中@DropDownSearch为自定义方法注解 @SearchKeyWord为自定义参数注解 在Aspect使用环绕通知: ``` public Object doAfterClearRedisCache(ProceedingJoinPoint joinPoint) throws Throwable { //Class<?> targetClass = joinPoint.getTarget().getClass(); //获得参数列表 Object[] args = joinPoint.getArgs(); } ``` getArgs方法无法获取被@SearchKeyWord标记的参数对象。 此前未使用@SearchKeyWord注解时一切均正常。 请问是什么问题?
如何用spirng aop aspectj自定义注解 切 servlet中的doPost
想实现一个功能,就是记录用户的操作日志 想用aop加自定义注解实现 Controller ``` @SupplierLog(event = "获取订单列表") @RequestMapping("/getOrderList.do") public Map getOrderList(HttpSession session,@RequestBody Map param) { } ``` AOP ``` @Pointcut("@annotation(com.hanzhisoft.tender.annotation.SupplierLog)") public void logPointCut(){ } @Before("logPointCut() && @annotation(supplierLog)") public void before(SupplierLog supplierLog) throws Throwable { SupplierUser user = (SupplierUser) session.getAttribute("currUser"); Map<Object, Object> map = new HashMap<>(); map.put("log_pk", UUIDUtil.getUUID().toUpperCase()); map.put("userid", user.getUserid()); map.put("cusname", user.getSupplireName()); map.put("ip_address", request.getRemoteAddr()); map.put("pk_eppuser", user.getPk_eppuser()); map.put("event", supplierLog.event()); System.out.println(map); System.out.println("切面执行完毕"); } ``` 在Controller的方法中加已经可以实现了。 但是由于项目比较旧,有很多功能是用servlet实现的,此时想在doPost中添加自定义注解,发现并不生效,就算把Servlet交给Spring管理也不能实现。 ``` @SupplierLog(event = "竞价中心") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/xml;charset=utf-8"); request.setCharacterEncoding("utf-8"); ```
spring如何在自己实现的切面注解中使用${}获取properties配置文件中的参数值?
## 问题 自己实现建了一个切面注解@Mypoint 注解有一个key属性 ``` String key(); ``` 在使用注解时 ``` @Mypoint(key = "abc-${env}") ``` 在properties配置文件中有 ``` env=dev ``` 这样通过配置文件可以动态切换注解中jKey的值 情况介绍: 这个切面注解是我引用的别人包里的,所以这个注解里的内容和功能我是没法改的,我只是想通过配置文件动态修改注解中的key值,在不同环境中给他传不同的值。 *************************************************************** ##解决过程 通常都会用@Value注解中使用${}获取properties中的参数值,在网上搜的大部分也都是说的是这个。 我自己以前尝试后在@PropertySource注解中使用 ``` @PropertySource(value = "classpath:config-${spring.profiles.active}.yml") ``` 这个在spring boot中使用时可行的,但是自己写的不起作用 可能有spring内部的原理没搞清楚,希望有尝试过的能提供一些建议,谢谢!!! ************************************************************* 12-4号补充 一楼的回答我尝试了,但是不是我想要的方式,可能我的描述有遗漏,所以对问题做了一些补充。
spring的@component注解自定义标识的问题
@component(“xxx”)就是给给这个bean添加一个自定义名字,可是这个名字添加 了有什么作用么 ,感觉用不到这个名字啊, 不是说在一个类中设置 @componentScan就自动加载bean了么 ,又不需要像配置xml的bean那样,需要.getBean(“xxx”)来获取bean
请教Spring自定义Bean集成的问题
自己做了一个工具框架,里面有扫包和自动注入部分,现在想将这个工具集成到Spring中,网上查看资料后发现可以通过自定义Bean的方式做集成 目前有个地方拿不定主意,我原来自己做的一个用于自动注入的注解怎么办?这里我是全面放弃转为使用Spring的@Autowired注解吗?这样好像也不好 不是每个项目都会集成到Spring中的 还是仍然自己管理实例(自动注入),在Spring获取实例时再从工具中获取?
Java中除了自定义注解, 有没有什么方法可以控制一个Double类型大于零
需求是小数点前最多输入5位数字精确到小数点后两位 我写的是: ``` @Digits(fraction = 2,integer = 5) private Double maxTransportVolume; ``` 在做接口测试的时候, 说要控制不能填小于0的数.(也不能等于0) 除了自定义注解, 有没有什么方法可以校验控制的?
spring boot整合spring security如何自定义登陆页面
请问spring boot整合spring security如何自定义登陆页面, /** * Created by song on 2016/5/28. * 设置 /login 转向 login.html页面 */ @Configuration public class SpringMvcConfig extends WebMvcConfigurerAdapter{ @Override public void addViewControllers(ViewControllerRegistry registry){ registry.addViewController("/login").setViewName("login"); } } 没有定位到这个login.html页面,是不是需要在启动类或者是spring security配置类里面配置一下呢,求大神解惑,感激不尽 ![图片说明](https://img-ask.csdn.net/upload/201605/28/1464367522_822821.png) ![图片说明](https://img-ask.csdn.net/upload/201605/28/1464367535_886911.png)
spring cloud gateway 自定义负载均衡getLoadBalancer()获取的服务总是同一个服务
根据业务需求,我需要自定义负载均衡规则,获取相应的服务,然后返回; 代码如下: 继承LoadBalancerClientFilter 重写choose方法; ``` protected ServiceInstance choose(ServerWebExchange exchange) { //获取用户票据信息 String ticket= AuthTicketUtils.getBxAuthTicket(exchange.getRequest()); logger.info("=====获取用户登录票据信息:{}============",ticket); if(!StringUtils.isEmpty(ticket)){ //根据ticket获取用户信息 if (this.loadBalancer instanceof RibbonLoadBalancerClient) { RibbonLoadBalancerClient client = (RibbonLoadBalancerClient) this.loadBalancer; String userId=getUserNo(ticket); logger.info("========当前操作用户信息为:{}=============",userId); if(null == userId){ return super.choose(exchange); } //获取服务名称 String serviceId = ((URI) exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR)).getHost(); logger.info("===========当前选择服务名称为:{}===========",serviceId); //这里使用服务ID 和 用户ID 做为选择服务实例的key GrayscaleProperties grayscaleProperties=new GrayscaleProperties(); grayscaleProperties.setServerId(serviceId); grayscaleProperties.setUserId(userId); return client.choose(serviceId,grayscaleProperties); } } return super.choose(exchange); } ``` 当调用client.choose(String name,Object hint)方法时,将会调用我的规则,我的自定义规则代码如下:首先继承了AbstractLoadBalancerRule类,重写choose方法 ``` public Server choose(Object o) { logger.info("=======服务选择:{}=======",o); //获取当前请求的所有服务 logger.info("============LoadBalancer:{}==============",this.getLoadBalancer().toString()); List<Server> servers = this.getLoadBalancer().getReachableServers(); //TODO 逻辑代码省略 return null; } ``` 当调用this.getLoadBalancer()时,返回的总是上一次正确的服务,举例来说我有A、B、C三个服务,当第一次请求A服务的时候正常返回,第二次B服务请求的时候,this.getLoadBalancer()返回的对象信息是A服务的信息; 附图: ![图片说明](https://img-ask.csdn.net/upload/202001/08/1578459146_182033.png) ![图片说明](https://img-ask.csdn.net/upload/202001/08/1578459161_886142.png)
spring如何在Aspect中获取切点注解方法的泛型参数类型
业务场景是这样:想要做一个自定义注解@MethodCache,注解方法,功能是通过Aspect切片来自动缓存方法结果 ``` @Target({ METHOD }) @Retention(RUNTIME) public @interface MethodCache { /** * 过期时间 单位秒 默认60秒 */ int expire() default 60; } ``` Aspect类 ``` @Aspect @Configuration public class MethodCacheAnnotationAspect { // 日志 private Logger logger = LoggerFactory.getLogger(MethodCacheAnnotationAspect.class); //redis @Autowired private RedisTemplate bbscache; // around 建言 切入点为匹配注解了@MethodCache @Around("@annotation(com.ewt360.bbsapi.service.component.MethodCache)") public Object cacheProcess(ProceedingJoinPoint jp) throws Throwable { Class<?> targetClz = jp.getTarget().getClass(); String methodName = jp.getSignature().getName(); if(!(jp.getSignature() instanceof MethodSignature)){ logger.warn("该方法接口无法启用缓存功能: {}", jp.getSignature().toLongString()); return jp.proceed(); } MethodSignature methodSign = (MethodSignature)jp.getSignature(); MethodCache sc = methodSign.getMethod().getAnnotation(MethodCache.class); if (sc == null) return jp.proceed(); int expire = sc.expire() > 0 ? sc.expire() : 200; // 组装缓存key String cacheKey = buildCacheKey(targetClz, methodName, jp.getArgs()); logger.info("cacheInvoke =>{}",cacheKey); Object rval = cacheInvoke(sc, methodSign, jp, cacheKey, expire); return rval; } private String buildCacheKey(Class targetClz, String methodName, Object[] args){ return targetClz.getPackage()+methodName+ StringUtils.arrayToDelimitedString(args, "."); } private Object cacheInvoke(MethodCache sc, MethodSignature methodSign, ProceedingJoinPoint jp, String cacheKey, int expire) throws Throwable { //得到方法的结果类型 Class returnClazz = methodSign.getReturnType(); Object result; Object rval = bbscache.opsForValue().get(cacheKey); if (rval == null) { logger.info("miss from cache, load backend for key : {}", cacheKey); result = jp.proceed(); if(result != null){ logger.info("cache to redis {},{}", cacheKey, JSON.toJSONString(result)); bbscache.opsForValue().set(cacheKey, result, expire, TimeUnit.SECONDS); } } else{ if(ObjectUtils.isBaseType(returnClazz)){ result = rval; } else { JSON.parseObject((String) rval, new TypeReference<List<Integer>>() {}); result = JSONObject.toJavaObject((JSON) rval, returnClazz); } logger.info("cache get object: {}", JSON.toJSONString(rval)); } return result; } } ``` 使用的时候只要在方法上加上注解就ok ``` @MethodCache() public List<Integer> testInt() { List<Integer> list = new ArrayList<>(); list.add(0); list.add(1); return list; } ``` 利用redis缓存方法执行结果,如果已缓存则将缓存转换为方法出参类型,正常的参数类型都OK的,可以得到方法的结果类型,但是如果是泛型类型的话,比如List和map, 却只能得到List,Map类型,并不能得到确切的泛型类型,比如 ``` List<Map<String,String>> List<User> Map<String, User> ``` 只能解出 ``` List<JSONObject> Map<Object, JSONObject> ``` 因为泛型的类型擦除,所以很难做到,也想过在注解里面传入具体类型,但是也没办法把泛型类型传进来,这个要怎么做,希望大家提供思路!!
spring data的@Audited注解可以换成配置文件吗
急问!spring data的@Audited注解可以换成配置文件吗?如果可以能写一下怎么配置的吗?谢谢!
spring解析自定义标签
目前在读spring解析自定义标签的源码。 解析过程中在XmlBeanDefinitionReader对象中的createDefaultNamespaceHandlerResolver()方法中需要生成DefaultNamespaceHandlerResolver对象,采用的是构造方法new DefaultNamespaceHandlerResolver(getResourceLoader().getClassLoader());这个构造方法只是将DefaultNamespaceHandlerResolver的属性handlerMappingsLocation设置了初始值META-INF/spring.handlers,以及设置了属性classLoader的值,但是并没有对属性private volatile Map<String, Object> handlerMappings进行操作,但是构造完的DefaultNamespaceHandlerResolver对象的属性handlerMappings却有值,是把spring.handlers里的内容以key-value的形式保存的。 那么问题来了,handlerMappings属性是在什么时候赋值的?
Spring框架中的Autowired注解,默认真的是按照ByType方式实现自动注入的吗?
在学习spring IOC的过程中,接触到@Autowired注解,资料上都是说默认是按照Bytype类型实现自动注入,但我的实际操作却发现是:先使用ByName,如果失败,再使用ByType。贴代码,求指点: Student类: ``` @Component public class Student { @Value("12") int age; @Value("lisa") String name; @Autowired School school; public Student(){} public Student(int age, String name, School school) { this.age = age; this.name = name; this.school = school; } @Override public String toString() { return "Student{" + "age=" + age + ", name='" + name + '\'' + ", school=" + school + '}'; } } ``` School类: ``` public class School { String name; String address; public School() { } public School(String name, String address) { this.name = name; this.address = address; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } ``` xml文件 ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--配置注解扫描器,base-package表示注解所在的包,目的是告诉spring框架去扫描指定包的注解--> <context:component-scan base-package="com.aipande.bao1"/> <bean id="school" class="com.aipande.bao1.School"> <property name="name" value="武汉大学21"/> </bean> <bean id="school03" class="com.aipande.bao1.School"> <property name="name" value="武汉大学21"/> </bean> <bean id="school02" class="com.aipande.bao1.School"> <property name="name" value="武汉大学"/> </bean> </beans> ``` 测试类: ``` public class AppTest01 { public static void main(String[] args) { /* * 创建spring容器对象 * spring框架在加载xml文件并创建spring容器对象的同时, * 就会将xml文件中配置的bean对象(作用域为singleton)一同创建,并将这些对象放置在spring容器中。 * */ String config = "applicationContext.xml"; ApplicationContext ctx = new ClassPathXmlApplicationContext(config); //使用getBean()方法获取bean对象 Student stu = (Student) ctx.getBean("student"); System.out.println(stu); } } ``` 结果输出: ``` Student{age=12, name='lisa', school=School{name='武汉大学21', address='null'}} ``` 问题: 如果按照Bytype方式获取bean对象,那上面就应该报错啊,因为sprig容器中存在多个同源bean对象,但是没有报错,说明是按照byName的方式注入。后来我将xml文件中id为school的bean对象删除,就出现了错误提示,说明此时是按照byType的方式注入。因此我有上面的疑问,求解
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
Android性能优化(4):UI渲染机制以及优化
文章目录1. 渲染机制分析1.1 渲染机制1.2 卡顿现象1.3 内存抖动2. 渲染优化方式2.1 过度绘制优化2.1.1 Show GPU overdraw2.1.2 Profile GPU Rendering2.2 卡顿优化2.2.1 SysTrace2.2.2 TraceView 在从Android 6.0源码的角度剖析View的绘制原理一文中,我们了解到View的绘制流程有三个步骤,即m...
微服务中的Kafka与Micronaut
今天,我们将通过Apache Kafka主题构建一些彼此异步通信的微服务。我们使用Micronaut框架,它为与Kafka集成提供专门的库。让我们简要介绍一下示例系统的体系结构。我们有四个微型服务:订单服务,行程服务,司机服务和乘客服务。这些应用程序的实现非常简单。它们都有内存存储,并连接到同一个Kafka实例。 我们系统的主要目标是为客户安排行程。订单服务应用程序还充当网关。它接收来自客户的请求...
致 Python 初学者们!
作者| 许向武 责编 | 屠敏 出品 | CSDN 博客 前言 在 Python 进阶的过程中,相信很多同学应该大致上学习了很多 Python 的基础知识,也正在努力成长。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 Python 这门编程语言,从2009年开始单一使用 Python 应对所有的开发工作,直至今...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
SpringBoot2.x系列教程(三十六)SpringBoot之Tomcat配置
Spring Boot默认内嵌的Tomcat为Servlet容器,关于Tomcat的所有属性都在ServerProperties配置类中。同时,也可以实现一些接口来自定义内嵌Servlet容器和内嵌Tomcat等的配置。 关于此配置,网络上有大量的资料,但都是基于SpringBoot1.5.x版本,并不适合当前最新版本。本文将带大家了解一下最新版本的使用。 ServerProperties的部分源...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
爬取薅羊毛网站百度云资源
这是疫情期间无聊做的爬虫, 去获取暂时用不上的教程 import threading import time import pandas as pd import requests import re from threading import Thread, Lock # import urllib.request as request # req=urllib.request.Requ...
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计...
HTML5适合的情人节礼物有纪念日期功能
前言 利用HTML5,css,js实现爱心树 以及 纪念日期的功能 网页有播放音乐功能 以及打字倾诉感情的画面,非常适合情人节送给女朋友 具体的HTML代码 具体只要修改代码里面的男某某和女某某 文字段也可自行修改,还有代码下半部分的JS代码需要修改一下起始日期 注意月份为0~11月 也就是月份需要减一。 当然只有一部分HTML和JS代码不够运行的,文章最下面还附加了完整代码的下载地址 &lt;!...
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问

相似问题

1
spring boot 切面 自定义注解无法使用在启动类的问题
8
springmvc中获取注解的spring bean
1
请教Spring自定义Bean集成的问题
3
Java中除了自定义注解, 有没有什么方法可以控制一个Double类型大于零
2
spring boot如何把header中参数映射到controller中方法的自定义对象上?
0
Spring Data Jpa,在使用@Query()注解进行查询,nativeQuery=true时,能否返回一个自定义实体类?
2
Spring MVC 如何在使用<mvc:annotation-driven/>情况下自定义RequestMappingHandlerMapping
2
参数上使用自定义注解在aop中无法获取到该参数
2
spring缓存注解 @cacheable是如何知道自己要使用哪一种缓存来存储的?
1
spring cloud ribbon自定义多个配置类要怎么做
4
springboot,通过注解获取当前所在注解位置的方法的名称,谢谢
2
关于spring boot注解的使用@Autowired
1
spring social 怎么自定义回调域名?
1
如何用spirng aop aspectj自定义注解 切 servlet中的doPost
1
Spring框架中的Autowired注解,默认真的是按照ByType方式实现自动注入的吗?
1
关于spring中的@Transactional注解,求大佬帮帮忙解惑
1
关于Spring框架注解及解耦的问题
1
关于cglib动态代理的对象无法获取其属性注解的问题
1
spring如何在自己实现的切面注解中使用${}获取properties配置文件中的参数值?
2
spring cloud gateway 自定义负载均衡getLoadBalancer()获取的服务总是同一个服务