有没有办法根据弹簧配置文件禁用spring-boot eureka客户端注册?
目前我使用以下注释:
@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是一个条件如(借用伪代码)
@if (Profile!="development")
@EnableDiscoveryClient
@endif
Run Code Online (Sandbox Code Playgroud)
或者在应用程序属性文件中的某种方式.我已经尝试将application.yml文件设置为:
spring:
profiles: development
cloud:
discovery:
enabled: false
Run Code Online (Sandbox Code Playgroud)
但这没效果.
我目前正在学习C#中的运算符和表达式,我明白如果我想将变量的值增加5,我可以用两种不同的方式来实现:a = a + 5和a += 5.显然,第二种方式更容易,写得更快,阅读更愉快.但是,从计算机的角度来看,a += 5速度要快a = a + 5吗?编译和执行的时间是否比表达式的较长版本少?
换句话说,两个星号背后是什么?它只是将数字乘以x倍或其他?作为后续问题,写2**3或2*2*2是否更好.我问,因为我听说在C++中最好不要使用pow()进行简单的计算,因为它调用了一个函数.
我正在编写使用此库的库和服务.我想要一个UsernameProvider服务,它负责提取登录用户的用户名.我在库中使用服务:
class AuditService {
@Autowired
UsernameProvider usernameProvider;
void logChange() {
String username = usernameProvider.getUsername();
...
}
}
Run Code Online (Sandbox Code Playgroud)
我希望有一个UsernameProvider接口的默认实现,它从JWT的主题声明中提取用户名.但是,在依赖于库的服务中,我想使用基本身份验证,因此我创建了一个BasicAuthUsernameProvider覆盖getUsername().
当有多个相同类型的autowire候选者(DefaultUsernameProvider在库中和BasicAuthUsernameProvider服务中)时,我自然会收到错误,因此我必须将服务中的bean标记为@Primary.但我不希望库客户端指定主bean,而是标记默认值.
添加@Order(value = Ordered.LOWEST_PRECEDENCE)上DefaultUsernameProvider没有用.
@ConditionalOnMissingBean在库中添加Configuration类也不起作用.
编辑:原来,增加@Component对UsernameProvider实现类呈现@ConditionalOnMissingBean无用的,因为春天引导试图自动装配注释为组件的每个类,因此抛出了"发现类型的多个豆"的例外.
我正在查看W3Schools 的本教程,其中他们将地址、邮政编码和国家/地区组合在一起作为单列“地址”。所以我一直在使用 Northwind DB,并想对员工姓名做同样的事情:
SELECT EmployeeID, FirstName +" "+ LastName AS Name FROM Employees;
Run Code Online (Sandbox Code Playgroud)
但我得到的只是“名称”列中的 0。我认为 SQLite 已经隐式地将字符串转换为整数,但这没有意义......
因此,我必须创建一个采用以下形式的字符串的程序:
2x^3 + x^2 - 4并计算其派生值,即使其像这样:6x^2 + 2x
因此,我正在创建一个class Monomial具有三个成员变量的变量:系数,变量名称和功效。换句话说,我必须将多项式分解为单项式。然后,我必须将每个单项式分解为上述变量。因此2x^3将表示为以下对象:Monomial(2, 'x', 3)
但是,我该如何专门分割字符串呢?我不想使用“ SymPy”或其他库来轻松计算导数。
在我的 Spring Boot 应用程序中,我有以下控制器,它使用一个方法将所有 HTML5 路由重定向到根 URL**:
@Controller
public class RedirectController {
@RequestMapping(value = "/**/{path:[^\\.]*}")
public String redirect() {
return "forward:/";
}
}
Run Code Online (Sandbox Code Playgroud)
我应该如何正确测试它是否按预期工作?
调用类的content()方法MockMvcResultMatchers不起作用:
@Test
public void givenPathWithoutDotShouldReturnString() throws Exception {
this.mockMvc.perform(get("/somePath"))
.andExpect(content().string("forward:/"));
}
>>> java.lang.AssertionError: Response content
>>> Expected :forward:/
>>> Actual :
Run Code Online (Sandbox Code Playgroud)
** 我从这个 Spring 教程中发现了这个解决方案。
我试图找到答案,但我无法提出我的问题.所以我试图解决这个问题.我必须用它的二进制代码表示一个十进制数,我对表示做得很好.我用的很简单Convert.ToString(number, 2).但是,如果我输入5,例如,控制台上的输出将是"101",但我更喜欢"00000101".我相信应该有这样做的方法,但我找不到任何.
提前致谢!
我找不到关于这个主题的相关主题,所以我决定提出一个新问题.我是C#Dictionary课程的第一步,我有几个基本问题.首先,这个有什么区别:
Dictionary<int, string> dict = new Dictionary<int, string>();
dict[1] = "hello";
Run Code Online (Sandbox Code Playgroud)
这个(如果有的话):
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "hello");
Run Code Online (Sandbox Code Playgroud)
我的第二个问题是:是否有任何方法可以在同一行添加多个条目(如果我可以调用一对键和值).有点像int a, b, c;,而不是int a; int b; int c;.或者只能在多行上添加它们:
dict.Add(1, "hello");
dict.Add(2, "hey");
Run Code Online (Sandbox Code Playgroud)
我关于字典输出的最后一个问题是,如果有一种"更好"的方式来打印字典,而不是这样做:
foreach (KeyValuePair<int, string> pair in dict)
{
Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
}
Run Code Online (Sandbox Code Playgroud)
就更快打字和更快执行而言,我的意思是"更好".(我知道它也适用var,而不是KeyValuePair<>.
说我有两个堆栈:
stack<int> s1, s2;
Run Code Online (Sandbox Code Playgroud)
然后我在其中推送一些值:
s1.push(2);
s1.push(4);
s1.push(5);
s2.push(1);
s2.push(2);
s2.push(10);
Run Code Online (Sandbox Code Playgroud)
当我像这样比较bool isEqual = (s1 > s2);它时,它会产生True.但为什么?并非所有s1的元素都大于相应的s2元素,并且所有元素的总和也不大于s2的元素.STL数据结构之间的确切比较方法是什么.
PS我想这也适用于队列,deques,列表.