Я довольно новичок в Spring. Я использовал его раньше, чтобы создать REST API, и теперь я использую его снова для этой же цели.Spring RestController, взаимодействующий с другими классами Java
В дополнение к размещению службы REST эта программа также многократно открывает файл, сканирует шаблоны и поддерживает структуру того, что он находит.
Прямо сейчас мы начинаем этот поток управления здесь.
@SpringBootApplication
@EnableWebSecurity
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
SSHParser parser = new SSHParser();
parser.startParserLoop();
}
}
В RestController мы хотим иметь ссылку на этот объект синтаксического анализа, поэтому мы можем использовать его в методах запроса HTTP.
@RestController
public class RestController {
@Autowire
SSHParser parser;
@RequestMapping("/api/list")
public Entry[] getList() {
return parser.list();
}
}
Я думаю, что я понимаю, что мы могли бы сделать что-то вроде выше, но это создает новый экземпляр SSHParser
когда то, что нам действительно нужно, это экземпляр parser
от метода main
.
Это что-то, что мы не собираемся делать с весной? Можно ли вызвать конструктор для остального контроллера самостоятельно, чтобы передать ссылку таким образом?
'@ SpringBootApplication' - это оболочка для' @ Configuration' и других аннотаций, поэтому нет необходимости создавать другой класс конфигурации –
@ Daniel Olszewski: Ah OK. Не знал этого, но видел ваше решение, которое указывает на это. Это, конечно, короче. – morsor