我想知道在应用程序启动之前加载初始数据库数据的最佳方法是什么?我正在寻找的东西将使我的H2数据库充满数据.
例如,我有一个域模型"用户"我可以通过转到/ users来访问用户,但最初在数据库中不会有任何用户,所以我必须创建它们.反正有没有自动填充数据库?
目前我有一个容器实例化的Bean,并为我创建用户.
例:
@Component
public class DataLoader {
private UserRepository userRepository;
@Autowired
public DataLoader(UserRepository userRepository) {
this.userRepository = userRepository;
LoadUsers();
}
private void LoadUsers() {
userRepository.save(new User("lala", "lala", "lala"));
}
}
Run Code Online (Sandbox Code Playgroud)
但我非常怀疑这是最好的方法.或者是吗?
我想知道如何为我的测试验证用户身份?现在,我将编写的所有测试都将失败,因为端点需要授权.
测试代码:
@RunWith(SpringRunner.class)
@WebMvcTest(value = PostController.class)
public class PostControllerTest {
@Autowired
private MockMvc mvc;
@MockBean
private PostService postService;
@Test
public void testHome() throws Exception {
this.mvc.perform(get("/")).andExpect(status().isOk()).andExpect(view().name("posts"));
}
}
Run Code Online (Sandbox Code Playgroud)
我找到的一个解决方案是通过在@WebMvcTest中将secure设置为false来禁用它.但这不是我想要做的.
有任何想法吗?
spring spring-mvc spring-security spring-test-mvc spring-boot
我正在做一个涉及 CMake 的学校作业。
我正在尝试在 CLion 中导入 CMake 项目,但出现以下错误:
CMakeLists.txt:35 处的 CMake 错误:解析错误。需要一个命令名称,得到带有文本“add_subdirectory​”的不带引号的参数。
指定的行如下:
#? ?Add? ?terminal? ?sub? ?directory
add_subdirectory?(?terminal)
target_link_libraries(${Screen}? ?Terminal)
Run Code Online (Sandbox Code Playgroud)
整个 CMake 文件:
# Projektets namn
project(Screen)
# Minsta tillåtna cmake version
cmake_minimum_required(VERSION 3.2)
# Kompilera med c++ 11 stöd
set (CMAKE_CXX_STANDARD 11)
# Lägg till katalogen med våra bibliotek till INCLUDE path
# (i dessa kataloger kommer kompilatorn att leta efter de
# header filer som inkluderas i koden)
INCLUDE_DIRECTORIES($ENV{TOOLS_INCLUDE})
# Ta med alla källkodsfiler i den aktuella …Run Code Online (Sandbox Code Playgroud) 好吧,所以我根本无法让它工作。我检查了场景生成器中的 CSS 分析器,得出的结论是,更改文本区域中文本颜色的方法与此类似:`
.text-area .text {
-fx-fill: #1e88e5;
-fx-font-size: 32px;
}`
Run Code Online (Sandbox Code Playgroud)
问题是颜色没有改变,字体大小也没有改变。我这里哪里出错了?
我用以下代码声明了一个矩阵:
matrix = [[' ' for x in range(x1)] for x in range(y1)]
Run Code Online (Sandbox Code Playgroud)
但是当我尝试找到一个随机元素并使用以下代码更改它的值时:
randomX = random.randint(0, x)
randomY = random.randint(0, y)
if matrix[randomX][randomY] == ' ':
try:
matrix[randomX][randomY] = 'G'
scr.addstr(randomX, randomY, matrix[randomX][randomY])
scr.refresh()
except IndexError:
return
Run Code Online (Sandbox Code Playgroud)
我得到一个IndexError.我试着写一些垃圾代码来退出函数,如果它运行到IndexError.它工作一次,然后它仍然会抛出错误.
注意,x1与函数中的x相同.y1和y也是如此.
我有什么问题吗?
我有一个基本的 POJO,其字段如下所示:
@NotEmpty
@ElementCollection
@Column(name = "TAGS")
private List<String> tags;
Run Code Online (Sandbox Code Playgroud)
我正在尝试向以下控制器发送 JSON 格式的 POST 请求:
@RequestMapping(value = "/post", method = RequestMethod.POST)
public void createPost(@RequestBody BlogPost blogPost) {
blogPostService.addPost(blogPost);
}
Run Code Online (Sandbox Code Playgroud)
我的JSON:
{
"stuff": "stuff",
"stuff": "stuff",
"tags": [{"Tag 1"}, {"Tag 2"}]
}
Run Code Online (Sandbox Code Playgroud)
基本上我的问题是我不知道如何将其转换为列表。我试过寻找答案,但我什么也没找到。这甚至可能吗?
我得到的错误是:
JSON 解析错误:无法从 START_OBJECT 令牌中反序列化 java.lang.String 的实例;
我最近开始学习C#,所以我绝不是专家.无论如何,我试图创建一个面向对象的计算器,但我遇到了一个问题,似乎我无法从某些类中的其他类访问方法.我没有得到错误代码但是当我放下断点并调试应用程序时,变量的值为0.
如果我从DisplayUserData中删除该方法并将代码粘贴到我的主程序文件中,它运行正常.看起来DisplayUserData类似乎无法传递变量或从其他类中检索变量,为什么会这样呢?
哦,原谅可怕的方法,类和变量名称.
这是我的主程序文件:
namespace Calculator
{
class Program
{
static void Main(string[] args)
{
GetUserInput userInput = new GetUserInput();
Calculator calculator = new Calculator();
DisplayUserData displayUserCalculation = new DisplayUserData();
userInput.MethodOfCalculation();
userInput.UserNumberInput();
displayUserCalculation.DisplayCalculatedUserData();
}
}
}
Run Code Online (Sandbox Code Playgroud)
接下来是我的GetUserInput类:
namespace Calculator
{
public class GetUserInput
{
public char Choice;
public decimal ValueOne;
public decimal ValueTwo;
public void MethodOfCalculation()
{
Console.WriteLine("Welcome to Calculator v.1!");
Console.WriteLine("Please choose a method of calculation below.");
Console.WriteLine("1: Addition");
Console.WriteLine("2: Subtraction");
Console.Write("Your choice: ");
Choice = Console.ReadKey().KeyChar;
}
public …Run Code Online (Sandbox Code Playgroud) 我将带有20个项目的向量传递给下面的函数.我的目标是改变向量中项目的顺序.如果列表包含项目1 2 3 4,我希望最终结果为4 3 2 1.基本上将第一个项目切换为最后一项,将第二项目切换为倒数第二项目.
template<typename T>
void changePosition(std::vector<T>& list)
{
std::cout << "Swapping \n";
for (int i = 0; i < list.size(); i++)
{
std::iter_swap(list.begin() + i, list.end() - i);
}
std::cout << "Swapped \n";
}
Run Code Online (Sandbox Code Playgroud)
我最终得到错误:
c ++ vector iterator不可解除引用
有任何想法吗?我没有找到任何能够实现我想要实现的目标的样本.
确实可以使用std :: reverse,我正在进行的赋值要求我使用iter_swap.
我正在尝试遍历文件夹并列出特定文件结尾的所有文件.我试图用递归方法解决这个问题,但我没有得到任何地方.
private int counter = 0;
public void printAllJavaFiles(File directory) {
printFile(directory);
File[] subDirectories = directory.listFiles();
for (File file : subDirectories) {
printAllJavaFiles(file);
}
}
private void printFile(File file) {
// Get file extension
String fileExtension = "";
int i = file.getName().lastIndexOf('.');
if (i >= 0) {
fileExtension = file.getName().substring(i + 1);
}
if (fileExtension.equals("java")) {
System.out.println("File: " + file.getName() + " Size: " + file.length());
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?我真的不知道如何在目录结构中上下移动.它只是进入第一个文件夹,一旦它完成列出它的文件,它会抛出一个nullpointerexception.
有没有办法检查两个字符串在PHP中是否相似?
假设我有“出租汽车”的文字,我希望“租车”被视为类似于“出租汽车”。
或另一个示例,“ DS Nintendo”应类似于“ blabla Nintendo DS 4051”。
类似的文本不适用于上面的示例。为了将其接受为相似的值,必须将%的阈值设置得非常低。可以轻松比较“ DS Nintendo”和“ Nintendo DS”,但是现在以它为例。“ DS Nintendo”,“ blabla 352532 1qwd0gs Nintendo 03532 DS”。该百分比将非常低。