我正在创建JavaMailSender的bean类,并自动拥有javamailsender,但我得到错误
package com.websystique.springsecurity.service;
import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.MailParseException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.websystique.springsecurity.dao.EmployeeDao;
import com.websystique.springsecurity.model.Employee;
@Service
@Transactional
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
private EmployeeDao employeeDAOImpl;
Employee Employee;
@Autowired
private JavaMailSender mailSender;
@Autowired
private SimpleMailMessage simpleMailMessage;
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
@Transactional
public void addEmployee(Employee employee) {
employeeDAOImpl.addEmployee(employee);
StringBuilder subject = new StringBuilder();
subject.append("User ");
subject.append(employee.getFirstname());
subject.append(" ");
subject.append(employee.getLastname());
subject.append(" has been added");
String content = subject.toString()+" Successfully!";
sendMail("", content,subject.toString(),employee.getEmail(),"D:\\log.pdf");
}
@Transactional
public List<Employee> getAllEmployees() {
return employeeDAOImpl.getAllEmployees();
}
@Transactional
public void deleteEmployee(Integer employeeId) {
employeeDAOImpl.deleteEmployee(employeeId);
}
@Transactional
public Employee getEmployee(int empid) {
return employeeDAOImpl.getEmployee(empid);
}
@Transactional
public Employee updateEmployee(Employee employee) {
Employee emp = employeeDAOImpl.updateEmployee(employee);
StringBuilder subject = new StringBuilder();
subject.append("User ");
subject.append(emp.getFirstname());
subject.append(" ");
subject.append(emp.getLastname());
subject.append(" has been updated");
String content = subject.toString()+" Successfully!";
sendMail("", content,subject.toString(),emp.getEmail(),"D:\\log.pdf");
return emp;
}
@Transactional
public void setEmployeeDAO(EmployeeDao employeeDAO) {
this.employeeDAOImpl = employeeDAO;
}
@Transactional
public void sendMail(String dear, String content,String subject,String
toEmail,String filePath) {
MimeMessage message = mailSender.createMimeMessage();
try{
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(new InternetAddress("saranpartneritech@gmail.com"));
helper.setTo(new InternetAddress(toEmail));
helper.setSubject(subject);
helper.setText(content);
if(filePath!=null){
FileSystemResource file = new FileSystemResource(filePath);
helper.addAttachment(file.getFilename(), file);
}
}catch (MessagingException e) {
throw new MailParseException(e);
}
mailSender.send(message);
}
}
我不能为bean id="mail Sender"创建bean类。我在过去的两天里一直在努力,请让我离开它。
<context:component-scan base-
package="com.websystique.springsecurity.controller" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<mvc:resources mapping="/static/**" location="/static/" />
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionService
FactoryBean">
<property name="converters">
<list>
<bean id="roleToUserProfile"
class="com.websystique.springsecurity.util.RoleToUserProfileConverter" />
</list>
</property>
</bean>
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="saranpartneritech@gmail.com" />
<property name="password" value="Saran2595" />
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
<!--
<bean id="mailMail" class="com.mkyong.common.MailMail">
<property name="mailSender" ref="mailSender" />
<property name="simpleMailMessage" ref="customeMailMessage" />
</bean>
<bean id="customeMailMessage"
class="org.springframework.mail.SimpleMailMessage">
<property name="from" value="saranpartneritech@gmail.com" />
<property name="subject" value="Customer Report" />
<property name="text">
<value>
<![CDATA[
Dear %s,
Mail Content : %s
]]>
</value>
</property>
</bean> -->
</beans>
和错误页
组织。springframework。豆。工厂BeanCreationException:创建名为“employeeController”的bean时出错:自动连线依赖项的注入失败;嵌套的异常是org。springframework。豆。工厂BeanCreationException:无法自动关联字段:private com。网络系统。Spring安全。服务雇员服务公司。网络系统。Spring安全。控制器。雇员控制员。雇员服务公司;嵌套的异常是org。springframework。豆。工厂BeanCreationException:创建名为“employeeServiceImpl”的bean时出错:自动连线依赖项的注入失败;嵌套的异常是org。springframework。豆。工厂BeanCreationException:无法自动关联字段:私有组织。springframework。邮政javamail。javamailssender.com。网络系统。Spring安全。服务雇员服务公司。邮件发送者;嵌套的异常是org。springframework。豆。工厂NoSuchBeanDefinitionException:找不到[org.springframework.mail.javamail.JavaMailSender]类型的符合依赖项条件的bean:至少需要1个符合此依赖项autowire候选项条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}。springframework。豆。工厂注释。AutowiredNotationBeanPostProcessor。org上的后处理属性值(AutowiredNotationBeanpostProcessor.java:334)。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。org上的populateBean(AbstractAutowireCapableBeanFactory.java:1214)。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。org上的doCreateBean(AbstractAutowireCapableBeanFactory.java:543)。springframework。豆。工厂支持AbstractAutowireCapableBeanFactory。在org上创建Bean(AbstractAutowireCapableBeanFactory.java:482)。springframework。豆。工厂支持AbstractBeanFactory 1美元。org上的getObject(AbstractBeanFactory.java:305)。springframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:230)位于org。springframework。豆。工厂支持抽象工厂。org上的doGetBean(AbstractBeanFactory.java:301)。springframework。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:196)位于org。springframework。豆。工厂支持DefaultListableBeanFactory。在org上预实例化Singleton(DefaultListableBeanFactory.java:772)。springframework。上下文支持AbstractApplicationContext。finishBeanFactoryInitialization(AbstractApplicationContext.java:834)位于org。springframework。上下文支持AbstractApplicationContext。在org上刷新(AbstractApplicationContext.java:537)。springframework。网状物上下文上下文加载器。在org上配置和刷新WebApplicationContext(ContextLoader.java:446)。springframework。网状物上下文上下文加载器。位于org的initWebApplicationContext(ContextLoader.java:328)。springframework。网状物上下文ContextLoaderListener。contextInitialized(ContextLoaderListener.java:107)位于org。阿帕奇。卡塔琳娜。果心标准上下文。listenerStart(StandardContext.java:4853)位于org。阿帕奇。卡塔琳娜。果心标准上下文。startInternal(StandardContext.java:5314)位于org。阿帕奇。卡塔琳娜。util。生命周期酶。在org上启动(LifecycleBase.java:145)。阿帕奇。卡塔琳娜。果心ContainerBase$StartChild。在org上调用(ContainerBase.java:1408)。阿帕奇。卡塔琳娜。果心ContainerBase$StartChild。在java上调用(ContainerBase.java:1398)。util。同时发生的未来任务。在java上运行(FutureTask.java:266)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1142)。util。同时发生的线程池执行器$Worker。在java上运行(ThreadPoolExecutor.java:617)。朗。丝线。运行(Thread.java:745)
在xml中尝试此方法,如果有效,则返回
您的组件扫描仅包括com。网络系统。Spring安全。控制器。因此,它将无法扫描其他包以注入依赖项。启用顶部包上的组件扫描(com.websystique.springsecurity)并覆盖xml文件中的bean定义(如果需要)。
我需要将旧式spring项目迁移到springboot。假设下面的代码片段我必须迁移到Spring Boot风格。 在这里我的问题,如何将下面的抽象bean转换为@Bean?
问题内容: 我想创建一个内部类的Spring Bean。如果我有以下内部类: 我想在我的XML配置文件中创建bean实例。 问题答案: 您不能使用点()表示法访问公共静态内部类,而应使用货币()。一个例子: 这将起作用。
我需要在运行时使用动态bean工厂为不同条件创建不同类的动态bean。它是用于一般DAO实现的。如何使用Java配置实现它?? MVC初始化类 使用原型bean配置
问题内容: 我有一个应用程序,在application.properties中列出了许多数据源设置。我有一个可以加载这些设置的类。现在,我想从此类中获取值,并使用它们来动态创建DataSource bean。我尝试使用和实现。但是,使用时,处理似乎发生在早期-在填充我的课程之前。如何使用Spring Boot快速读取属性并动态创建bean? 这是我的application.properties的样
下面是我的application.properties的样子: 和我的ConfigurationProperties类: 在这个方法的最后,我想创建一个具有这些设置的并将其添加到ApplicationContext中。但是,如果我试图通过实现并实现来实现这一点,则属性为null,我用填充的也是一样。 使用Spring Boot创建动态数据源的最佳方法是什么?
在使用HTTP远程处理的Spring应用程序中,我有一个服务façade模块,配置如下(我将代码设置为通用代码以提高清晰度): 其中,FirstService和SecondService是与现有实现的接口,此处不需要这些实现的详细信息。 我有另一个模块,它定义了39个代理(HTTPInvokerProxy工厂bean的实例),对应于通过façade公开的每个服务。 到目前为止,一切正常。 但我希望