小编tom*_*ies的帖子

如何检查联合中当前使用的类型?

假设我们有一个联盟:

typedef union someunion {
    int a;
    double b;
} myunion;
Run Code Online (Sandbox Code Playgroud)

在设置例如a = 123之后,是否可以检查哪种类型是联合的?我的方法是将这个联合添加到某个结构中,并在它为int时将uniontype设置为1,当它为double时将其设置为2.

typedef struct somestruct {
    int uniontype
    myunion numbers;
} mystruct;
Run Code Online (Sandbox Code Playgroud)

有没有更好的解决方案?

c unions

29
推荐指数
3
解决办法
8534
查看次数

具有Spring Security的Thymeleaf - 如何检查用户是否已登录?

我正在使用带有Thymeleaf和Spring Security的Spring Boot.我有一个带登录链接的简单视图.当用户登录时,我想将登录链接更改为注销链接.

我试过了:

<div sec:authorize="#{isAuthenticated()}">
  <a th:href="@{/logout}">Log out</a>
</div>
<div sec:authorize="#{isAnonymous()}">
  <a th:href="@{/login}">Log in</a>
</div>
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 它显示两个链接.

最好的祝福.

编辑:我解决了.我必须注册Thymeleaf方言.为了做到这一点,我创建了一个新的配置类,它创建了SpringSecurityDialect bean:

@Configuration
public class ThymeleafConfig {

    @Bean
    public SpringSecurityDialect springSecurityDialect(){
        return new SpringSecurityDialect();
    }
}
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc spring-security thymeleaf

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

Spring - 如何注入具体的接口实现?

我需要通过@Autowired注入服务类的具体实现.

服务界面:

public interface PostService {
...
}
Run Code Online (Sandbox Code Playgroud)

执行:

@Service("postServiceImpl")
public class PostServiceImpl implements PostService {
...
}
Run Code Online (Sandbox Code Playgroud)

服务中的方法使用@Transactional注释

现在我想将postServiceImpl注入我的控制器 - 因为我需要使用实现中的一个方法,而不是在接口中:

@Autowired
@Qualifier("postServiceImpl")
private PostServiceImpl postService;
Run Code Online (Sandbox Code Playgroud)

我收到NoSuchBeanDefinitionException并带有以下消息:

没有为依赖项找到类型为[(...).PostServiceImpl]的限定bean:期望至少有一个bean可以作为此依赖项的autowire候选者.

当我将控制器中的字段更改为:

private PostService postService
Run Code Online (Sandbox Code Playgroud)

它工作,但我不能使用PostServiceImpl中的特定方法.

java service spring dependency-injection autowired

9
推荐指数
1
解决办法
4887
查看次数

使用scanf - > ANSI C的最大字符串长度

我有:

#define MAX_STR_LEN 100
Run Code Online (Sandbox Code Playgroud)

我想进入scanf模式,所以我可以控制字符串长度:

scanf("%100[^\n]s",sometext)
Run Code Online (Sandbox Code Playgroud)

我试过了:

scanf("%MAX_STR_LEN[^\n]s",sometext)
scanf("%"MAX_STR_LEN"[^\n]s",sometext)
scanf("%",MAX_STR_LEN,"[^\n]s",sometext)
Run Code Online (Sandbox Code Playgroud)

它没有用.我只是想避免缓冲区溢出,因为"sometext"分配了malloc(MAX_STR_LEN)...

有任何想法吗?

c scanf visual-studio-2010

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

什么是最好的Docker标记策略?

可以肯定的是,"最新"标签是不够的(即如果你想要回滚/调试).

什么是最好的码头标记练习?用内部版本号或提交号标记它会更好吗?还是其他一些选择?

continuous-integration continuous-deployment jenkins docker

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

Scala Future [T]是否在内部阻塞?Scala Future内部会发生什么?

val future = Future {
   println("hello")
   Thread.sleep(2000)
}

future.onComplete(_ => println("done"))
Run Code Online (Sandbox Code Playgroud)

上面的代码在以后的代码块中。

我的问题是:由于Future使用了ExecutionContext。这是否意味着该线程池中的某些线程在执行其中的代码时会被将来阻塞?

到底哪个线程会调用回调?来自线程池的另一个线程?它将如何发现在此将来执行的代码已完成?

multithreading scala future threadpool

5
推荐指数
1
解决办法
364
查看次数

很少有人怀疑C中的指针

1)初始化我使用的指针:

int number, *Pnumber;
    Pnumber=&number;
    number=10;
Run Code Online (Sandbox Code Playgroud)

我这样做了吗?

关于什么:

int *Pnumber;
*Pnumber=10;
Run Code Online (Sandbox Code Playgroud)

当我编译它时,我得到:

RUN FAILED(退出值1,总时间:858ms)

顺便说一句.我需要使用免费(Pnumber)来释放内存吗?

c

3
推荐指数
1
解决办法
103
查看次数

3
推荐指数
1
解决办法
220
查看次数

getch()没有conio.h工作 - 这怎么可能?

我开始使用Visual Studio 2010(c ++)来编写C代码.

#include <stdio.h>
#include <stdlib.h>

int main(){
    printf("test");
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码工作,即使没有添加conio.h库,程序也会在那里暂停getch(); 加下划线,它说,错误标识符getch(); 未定义.

怎么可能?

c visual-studio-2010

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

关于C中char和int指针的一些疑问

我对C中的指针有疑问.

[1] char *somestring = "somestring"
Run Code Online (Sandbox Code Playgroud)

[2] int *someint = 45
Run Code Online (Sandbox Code Playgroud)

为什么[1]有效,[2]没有?

为什么我们

printf("%s",str1);
Run Code Online (Sandbox Code Playgroud)

并不是

printf("%s",*str1);
Run Code Online (Sandbox Code Playgroud)

c

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