小编Tob*_*bia的帖子

如何获取Windows批处理的父文件夹

我正在编写批处理文件,我需要获取此bat文件的父文件夹.有可能吗?NB我是指批处理文件的父文件夹,而不是调用该批处理的提示的当前目录.

谢谢

windows directory batch-file parent

14
推荐指数
3
解决办法
2万
查看次数

服务中的Spring @Async方法

我有这个Service bean,调用内部异步方法的sync方法:

@Service
public class MyService {

    public worker(){
        asyncJob();
    }

    @Async
    asyncJob(){
        ...
    }

}
Run Code Online (Sandbox Code Playgroud)

问题是asyncJob并不是真的以异步方式调用.我发现这不起作用,因为内部调用会跳过AOP代理.

所以我尝试自我引用 bean:

@Service
public class MyService {

    MyService mySelf;
    @Autowired
    ApplicationContext cnt;
    @PostConstruct
    public init(){
        mySelf=(MyService)cnt.getBean("myService");
    }


    public worker(){
        mySelf.asyncJob();
    }

    @Async
    asyncJob(){
        ...
    }

}
Run Code Online (Sandbox Code Playgroud)

它失败了.再次没有异步调用.

所以我试着把它分成两个豆子:

@Service
public class MyService {
    @Autowired
    MyAsyncService myAsyncService;
    public worker(){
        myAsyncService.asyncJob();
    }
}

@Service
public class MyAsyncService {

    @Async
    asyncJob(){
        ...
    }

}
Run Code Online (Sandbox Code Playgroud)

再次失败.

唯一可行的方法是从Controller Bean调用它: …

java spring asynchronous spring-mvc

13
推荐指数
2
解决办法
1万
查看次数

如何杀死在C#中使用TCP端口的应用程序?

我想在启动应用程序期间释放TCP端口(向用户确认),如何获取PID号,然后,如果用户确认,则将其删除?

我知道我可以通过netstat获取这些信息,但是如何在脚本中或者在C#方法中更好.

c# netstat tcp kill-process

10
推荐指数
1
解决办法
3405
查看次数

Spring没有类型的独特bean

我在Spring中有两个服务组件有点麻烦.

我有这个组件:

@Component
public class SmartCardWrapper 
Run Code Online (Sandbox Code Playgroud)

还有这个:

@Component
public class DummySmartCardWrapper extends SmartCardWrapper
Run Code Online (Sandbox Code Playgroud)

该服务自动装配,但弹簧因此次尝试失败:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.cinebot.smartcard.SmartCardWrapper] is defined: expected single matching bean but found 2: [dummySmartCardWrapper, smartCardWrapper]
Run Code Online (Sandbox Code Playgroud)

为什么它不使用类名?

spring code-injection javabeans

8
推荐指数
1
解决办法
1万
查看次数

TSQL GROUP BY在递归CTE中

是否有解决方法在循环CTE中使用GROUP BY或有解决方法?

我需要对CTE表的结果集进行分组,并在具有相同CTE的另一个循环中使用它,但是我得到以下错误:

递归公用表表达式"cte"的递归部分中不允许使用GROUP BY,HAVING或聚合函数.

这是查询:

WITH cte
    AS
    (
        SELECT
          id,
          dailyconsumption,
          stock/dailyconsumption as cutoff
        FROM items
        WHERE father IS NULL


        UNION ALL

        SELECT
          i.id,
          SUM(father.dailyconsumption*i.num),
          MAX(stock)/SUM(father.dailyconsumption*i.num)
        FROM cte father
        JOIN items i ON father.id=i.father
        group by i.id
    )

SELECT id, MIN(cutoff)
FROM cte
GROUP BY id
Run Code Online (Sandbox Code Playgroud)

SQL-Fiddle(带有示例数据)


编辑......这是合乎逻辑的问题

我有一组最终用户项(父= NULL)和其他一些子项(由字段父和字段num填充).我只为最终用户项目获得了每日消费(我用"WHERE father IS NULL"开始我的cte),并且子项的dailyconsumption由SUM(father.dailyconsumption*item.num)计算.

WITH cte AS(
    SELECT
      id,
      dailyconsumption,
      stock/dailyconsumption as cutoff
    FROM items
    WHERE father IS NULL


    UNION ALL

    SELECT
      i.id,
      father.dailyconsumption*i.num
      0
    FROM cte father …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server common-table-expression

7
推荐指数
2
解决办法
1万
查看次数

Icalendar ICS更新无法在谷歌日历中使用

ICS与Gmail/Google日历地址的附件存在问题.当我必须编辑事件时,我通过邮件发送更新,其中ICS文件与原始事件的UID相同.但是,GCalendar添加了第二个事件.我怎么能克服这个?

这是第一个ICS文件内容:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20130425T090000
DTEND:20130425T100000
DTSTAMP:20130206T101100
ORGANIZER;CN=Test test:mailto:test@test.com
ATTENDEE:test@test.eu
UID:CALEVENT_TS090519840000000005
DESCRIPTION:test
SUMMARY:test
LOCATION:Test
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

这是更新ICS文件内容:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20130425T100000
DTEND:20130425T110000
DTSTAMP:20130206T101100
ORGANIZER;CN=Test test:mailto:test@test.com
ATTENDEE:test@test.eu
UID:CALEVENT_TS090519840000000005
DESCRIPTION:test
SUMMARY:test
LOCATION:Test
SEQUENCE:2
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

当我收到更新文件并点击"将此事件添加到日历"时,我会发现两个不同的事件.

这是原始的原始电子邮件:

Delivered-To: test@test.eu
Received: by 10.216.231.19 with SMTP id k19csp190640weq;
        Sat, 9 Feb 2013 08:01:11 -0800 (PST)
X-Received: by 10.194.7.136 with SMTP id j8mr15530679wja.38.1360425671327;
        Sat, 09 Feb 2013 08:01:11 -0800 (PST)
Return-Path: <test@test.eu>
Received: from mxavas8.aruba.it (mxavas8.aruba.it. [62.149.157.18]) …
Run Code Online (Sandbox Code Playgroud)

icalendar rfc2445 google-calendar-api rfc5545

7
推荐指数
2
解决办法
6633
查看次数

一些控制器的Spring mvc过滤器

我需要处理所有来自某些Spring控制器的请求,以获取一些请求者信息或抛出异常,如安全过滤器.

我想在Spring中有什么东西像控制器的过滤器(我不需要它适用于所有控制器,但只适用于某些人).我不想通过url请求应用此过滤器,但使用类/方法扩展或注释.

这是我的实际解决方案:

@Controller
public class MyFilteredController extends FilterController {

    @RequestMapping("/filtered")
    public void test1(HttpServletRequest req){
        InfoBean infobean=filter(req);
        //... controller job
    }

}
Run Code Online (Sandbox Code Playgroud)

使用过滤方法扩展类的控制器.

public abstract FilterController{
    protected InfoBean filter(HttpServletRequest req){
        //... filter job
        return infobean;
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring controller spring-mvc

7
推荐指数
2
解决办法
1万
查看次数

为什么@Async注解会导致循环引用问题?

这是我的豆子:

@Service
public class MyService{

   @Autowire
   private OtherService service;

   @Async
   public jobAync(){
      job();
   }
   public job(){
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么 jobAync 的 @Async 注释会导致 Spring 的循环引用问题,如果我删除该注释一切正常...我希望在自动装配中找到问题,但似乎与 @Async 相关联。

spring asynchronous autowired

7
推荐指数
1
解决办法
2346
查看次数

如何使用 Spring Stomp 拦截连接和订阅

我需要在我的 websocket spring 服务器中控制 stomp 客户端的连接/断开连接和订阅/取消订阅。这是主要的配置类:

@Configuration
@ComponentScan(basePackages = "com.test")
@EnableWebSocketMessageBroker
@EnableWebMvc
public class Config extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/queue", "/topic");
        config.setApplicationDestinationPrefixes("/app");
        config.setUserDestinationPrefix("/user");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/stomp").setAllowedOrigins("*").addInterceptors(getInterceptot());
    }

    private HandshakeInterceptor getInterceptot() {
        return new HandshakeInterceptor(){

            @Override
            public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
                return true; //TODO
            }

            @Override
            public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) {}

        };
    }

}
Run Code Online (Sandbox Code Playgroud)

我可以用beforeHandshake …

stomp websocket spring-websocket

7
推荐指数
1
解决办法
9999
查看次数

Zebra ZPL包装文本

我必须在ZPL标签的字段块中打印变量文本.

我想知道是否有可能定义块宽度然后自动换行文本,或者如果不可能,我必须手动添加新行char或将文本拆分为两个块.

word-wrap zpl

6
推荐指数
1
解决办法
6240
查看次数