创建模型时自动装配的对象为空
Autowired object is null while creating model
我正在为一个简单的问题而苦苦挣扎。
通过 Autowired 为我的服务创建模型时,对象始终为空。这是我定义组件的方式。
控制器
@RequestMapping("")
@RestController
@Log
public class Controller {
@Autowired
private JiraService jiraService;
...
服务:
@Component
@Getter
@Setter
@Log
public class JiraService {
@Autowired
JiraClientModel jiraClientModel;
public JiraService(@Value(value = "${jira.credentials.userName}") String userName,
@Value(value = "${jira.credentials.password}") String password,
@Value(value = "${jira.url}") String url,
@Value(value = "${jira.jql.query}") String query) throws URISyntaxException {
jiraClientModel.setSomeValues // here I want to assign some of my values but Model is null
}
还有我的模特:
@Component
@Getter
@Setter
public class JiraClientModel {
private SearchRestClient searchRestClient;
private String query;
}
您的应用程序是否在某处生成了 JiraClientModel
的实例(在用 @Bean
注释的方法中)?
此外,你真的需要一个注入的实例,你可以自己创建:
@Component
@Getter
@Setter
@Log
public class JiraService {
private final JiraClientModel jiraClientModel = new JiraClientModel();
public JiraService(@Value(value = "${jira.credentials.userName}") String userName,
@Value(value = "${jira.credentials.password}") String password,
@Value(value = "${jira.url}") String url,
@Value(value = "${jira.jql.query}") String query) throws URISyntaxException {
// ...
}
此外,不再推荐 @Autowired
注入,构造函数注入是现代 Spring.
的方式
我个人认为由 Spring 生成普通对象而不是仅以“普通”Java 方式创建普通对象没有多大用处 - 我在使用服务时主要使用依赖注入或组件。
我正在为一个简单的问题而苦苦挣扎。 通过 Autowired 为我的服务创建模型时,对象始终为空。这是我定义组件的方式。 控制器
@RequestMapping("")
@RestController
@Log
public class Controller {
@Autowired
private JiraService jiraService;
...
服务:
@Component
@Getter
@Setter
@Log
public class JiraService {
@Autowired
JiraClientModel jiraClientModel;
public JiraService(@Value(value = "${jira.credentials.userName}") String userName,
@Value(value = "${jira.credentials.password}") String password,
@Value(value = "${jira.url}") String url,
@Value(value = "${jira.jql.query}") String query) throws URISyntaxException {
jiraClientModel.setSomeValues // here I want to assign some of my values but Model is null
}
还有我的模特:
@Component
@Getter
@Setter
public class JiraClientModel {
private SearchRestClient searchRestClient;
private String query;
}
您的应用程序是否在某处生成了 JiraClientModel
的实例(在用 @Bean
注释的方法中)?
此外,你真的需要一个注入的实例,你可以自己创建:
@Component
@Getter
@Setter
@Log
public class JiraService {
private final JiraClientModel jiraClientModel = new JiraClientModel();
public JiraService(@Value(value = "${jira.credentials.userName}") String userName,
@Value(value = "${jira.credentials.password}") String password,
@Value(value = "${jira.url}") String url,
@Value(value = "${jira.jql.query}") String query) throws URISyntaxException {
// ...
}
此外,不再推荐 @Autowired
注入,构造函数注入是现代 Spring.
我个人认为由 Spring 生成普通对象而不是仅以“普通”Java 方式创建普通对象没有多大用处 - 我在使用服务时主要使用依赖注入或组件。