Spring boot - autowire fails
I'm trying to fetch some properties from application.properties
file ad my code is the following:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MySendService().sendReport();
}
}
My service class:
package it.mysite.service;
@Service
public class MySendService {
@Value("${mail.fc.to}")
private String to;
@Value("${mail.fc.subject}")
private String subject;
@Autowired ReportService reportEmailService;
@Autowired MailProperties mailProperties;
public void sendReport(){
if(mailProperties.getTo().length > 0) {
}
}
Class where I fetch the properties:
package it.mysite.properties;
@Component
@ConfigurationProperties("mail.fc")
public class MailProperties {
private String to;
public String getTo(){
return to;
}
}
Config file:
# Email config
mail.fc.to=my@mail.com
mail.fc.subject=My subject
All of the @Autowired
properties are null
, and also the @Value
properties (I tried to get them in that way also). When I print my context I can see these classes in the bean list, and for what I know my packages hierarchy is correct, so what can be the problem?
EDIT
Ok, I got the suggestion from the duplicate question and I changed my main class code as follows:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
@Autowired MySendService mySendService;
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MailSenderApplication().boot();
}
private void boot(){
mySendService.sendReport();
}
}
But I got the same error. Wasn't that the suggestion?
spring spring-boot properties autowired
add a comment |
I'm trying to fetch some properties from application.properties
file ad my code is the following:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MySendService().sendReport();
}
}
My service class:
package it.mysite.service;
@Service
public class MySendService {
@Value("${mail.fc.to}")
private String to;
@Value("${mail.fc.subject}")
private String subject;
@Autowired ReportService reportEmailService;
@Autowired MailProperties mailProperties;
public void sendReport(){
if(mailProperties.getTo().length > 0) {
}
}
Class where I fetch the properties:
package it.mysite.properties;
@Component
@ConfigurationProperties("mail.fc")
public class MailProperties {
private String to;
public String getTo(){
return to;
}
}
Config file:
# Email config
mail.fc.to=my@mail.com
mail.fc.subject=My subject
All of the @Autowired
properties are null
, and also the @Value
properties (I tried to get them in that way also). When I print my context I can see these classes in the bean list, and for what I know my packages hierarchy is correct, so what can be the problem?
EDIT
Ok, I got the suggestion from the duplicate question and I changed my main class code as follows:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
@Autowired MySendService mySendService;
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MailSenderApplication().boot();
}
private void boot(){
mySendService.sendReport();
}
}
But I got the same error. Wasn't that the suggestion?
spring spring-boot properties autowired
1
You're still doing the same mistake: using new to create Spring beans. Don't. Get the Spring bean from the Springcontext
. Or better, use a runner: docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…
– JB Nizet
Nov 23 '18 at 11:17
OMG thank you. This pointed me in the right direction. If you write your comment as an answer I'll chose that as the correct one.
– esseara
Nov 23 '18 at 11:33
1
@esseara You can't write it as an answer because the question has been closed as a duplicate. Essentially it's the same problem (meaning you can't use thenew
keyword that way). You can go to the other question though and vote for the most useful answer over there.
– g00glen00b
Nov 23 '18 at 12:00
add a comment |
I'm trying to fetch some properties from application.properties
file ad my code is the following:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MySendService().sendReport();
}
}
My service class:
package it.mysite.service;
@Service
public class MySendService {
@Value("${mail.fc.to}")
private String to;
@Value("${mail.fc.subject}")
private String subject;
@Autowired ReportService reportEmailService;
@Autowired MailProperties mailProperties;
public void sendReport(){
if(mailProperties.getTo().length > 0) {
}
}
Class where I fetch the properties:
package it.mysite.properties;
@Component
@ConfigurationProperties("mail.fc")
public class MailProperties {
private String to;
public String getTo(){
return to;
}
}
Config file:
# Email config
mail.fc.to=my@mail.com
mail.fc.subject=My subject
All of the @Autowired
properties are null
, and also the @Value
properties (I tried to get them in that way also). When I print my context I can see these classes in the bean list, and for what I know my packages hierarchy is correct, so what can be the problem?
EDIT
Ok, I got the suggestion from the duplicate question and I changed my main class code as follows:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
@Autowired MySendService mySendService;
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MailSenderApplication().boot();
}
private void boot(){
mySendService.sendReport();
}
}
But I got the same error. Wasn't that the suggestion?
spring spring-boot properties autowired
I'm trying to fetch some properties from application.properties
file ad my code is the following:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MySendService().sendReport();
}
}
My service class:
package it.mysite.service;
@Service
public class MySendService {
@Value("${mail.fc.to}")
private String to;
@Value("${mail.fc.subject}")
private String subject;
@Autowired ReportService reportEmailService;
@Autowired MailProperties mailProperties;
public void sendReport(){
if(mailProperties.getTo().length > 0) {
}
}
Class where I fetch the properties:
package it.mysite.properties;
@Component
@ConfigurationProperties("mail.fc")
public class MailProperties {
private String to;
public String getTo(){
return to;
}
}
Config file:
# Email config
mail.fc.to=my@mail.com
mail.fc.subject=My subject
All of the @Autowired
properties are null
, and also the @Value
properties (I tried to get them in that way also). When I print my context I can see these classes in the bean list, and for what I know my packages hierarchy is correct, so what can be the problem?
EDIT
Ok, I got the suggestion from the duplicate question and I changed my main class code as follows:
Main Application class:
package it.mysite;
@SpringBootApplication
@EnableTransactionManagement
public class MailSenderApplication {
@Autowired MySendService mySendService;
public static void main(String args){
ConfigurableApplicationContext context = SpringApplication.run(MailSenderApplication.class, args);
System.out.println("*****");
for (String name : context.getBeanDefinitionNames()) {
System.out.println(name);
}
System.out.println("*****");
new MailSenderApplication().boot();
}
private void boot(){
mySendService.sendReport();
}
}
But I got the same error. Wasn't that the suggestion?
spring spring-boot properties autowired
spring spring-boot properties autowired
edited Nov 23 '18 at 11:14
esseara
asked Nov 23 '18 at 10:42
essearaesseara
298822
298822
1
You're still doing the same mistake: using new to create Spring beans. Don't. Get the Spring bean from the Springcontext
. Or better, use a runner: docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…
– JB Nizet
Nov 23 '18 at 11:17
OMG thank you. This pointed me in the right direction. If you write your comment as an answer I'll chose that as the correct one.
– esseara
Nov 23 '18 at 11:33
1
@esseara You can't write it as an answer because the question has been closed as a duplicate. Essentially it's the same problem (meaning you can't use thenew
keyword that way). You can go to the other question though and vote for the most useful answer over there.
– g00glen00b
Nov 23 '18 at 12:00
add a comment |
1
You're still doing the same mistake: using new to create Spring beans. Don't. Get the Spring bean from the Springcontext
. Or better, use a runner: docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…
– JB Nizet
Nov 23 '18 at 11:17
OMG thank you. This pointed me in the right direction. If you write your comment as an answer I'll chose that as the correct one.
– esseara
Nov 23 '18 at 11:33
1
@esseara You can't write it as an answer because the question has been closed as a duplicate. Essentially it's the same problem (meaning you can't use thenew
keyword that way). You can go to the other question though and vote for the most useful answer over there.
– g00glen00b
Nov 23 '18 at 12:00
1
1
You're still doing the same mistake: using new to create Spring beans. Don't. Get the Spring bean from the Spring
context
. Or better, use a runner: docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…– JB Nizet
Nov 23 '18 at 11:17
You're still doing the same mistake: using new to create Spring beans. Don't. Get the Spring bean from the Spring
context
. Or better, use a runner: docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…– JB Nizet
Nov 23 '18 at 11:17
OMG thank you. This pointed me in the right direction. If you write your comment as an answer I'll chose that as the correct one.
– esseara
Nov 23 '18 at 11:33
OMG thank you. This pointed me in the right direction. If you write your comment as an answer I'll chose that as the correct one.
– esseara
Nov 23 '18 at 11:33
1
1
@esseara You can't write it as an answer because the question has been closed as a duplicate. Essentially it's the same problem (meaning you can't use the
new
keyword that way). You can go to the other question though and vote for the most useful answer over there.– g00glen00b
Nov 23 '18 at 12:00
@esseara You can't write it as an answer because the question has been closed as a duplicate. Essentially it's the same problem (meaning you can't use the
new
keyword that way). You can go to the other question though and vote for the most useful answer over there.– g00glen00b
Nov 23 '18 at 12:00
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53445133%2fspring-boot-autowire-fails%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53445133%2fspring-boot-autowire-fails%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
You're still doing the same mistake: using new to create Spring beans. Don't. Get the Spring bean from the Spring
context
. Or better, use a runner: docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…– JB Nizet
Nov 23 '18 at 11:17
OMG thank you. This pointed me in the right direction. If you write your comment as an answer I'll chose that as the correct one.
– esseara
Nov 23 '18 at 11:33
1
@esseara You can't write it as an answer because the question has been closed as a duplicate. Essentially it's the same problem (meaning you can't use the
new
keyword that way). You can go to the other question though and vote for the most useful answer over there.– g00glen00b
Nov 23 '18 at 12:00