我正在使用Spring框架实现一个简单的应用程序来执行CRUD操作。
源代码:
User.java是模型类。
package com.vipin.model;
public class User {
private int ssn;
private String firstName;
private String lastName;
private String emailId;
public int getSsn() {
return ssn;
}
public void setSsn(int ssn) {
this.ssn = ssn;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailId() {
return emailId;
}
public void setEmailId(String emailId) {
this.emailId = emailId;
}
}
package com.vipin.dao;
import com.vipin.model.User;
public interface DBOpsDao {
boolean add(User user);
boolean find(int ssnId);
}
package com.vipin.dao;
import java.sql.Connection;
import java.sql.SQLException;
import javax.annotation.Resource;
import javax.sql.DataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.vipin.model.User;
public class DefaultDBOpsDaoImpl implements DBOpsDao {
private DataSource dataSource;
public DataSource getDataSource() {
return dataSource;
}
@Resource(name="dataSource")
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
System.out.println("Datasource value is " + dataSource);
}
public boolean add(User user) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
return false;
}
public boolean find(int ssnId) {
// TODO Auto-generated method stub
return false;
}
}
package com.vipin.app;
import com.vipin.dao.DBOpsDao;
import com.vipin.dao.DefaultDBOpsDaoImpl;
import com.vipin.model.User;
public class MainApp {
public static void main(String[] args) {
System.out.println("Inside main...");
DBOpsDao dao = new DefaultDBOpsDaoImpl();
User user = new User();
user.setFirstName("xxx");
user.setLastName("yyy");
user.setSsn(1);
user.setEmailId("xxx.yyy@example.com");
dao.add(user);
}
}
我正在使用maven来构建它,所以java源代码在:
src / main / java(顶级包com.vipin)
当我运行这个程序时,它会抛出异常抱怨spring.xml不存在。一世 使用ApplicationContext,实现ClassPathXmlApplicationContext之一。
我需要在哪个位置放置spring.xml文件?
任何输入都会有所帮助。
答案 0 :(得分:2)
您需要在位置 - src / main / resources文件夹中添加spring.xml文件。您可以将此目录中的目录结构设置为 - src / main / resources / com / vipin / dao。
src / main / java目录是java类的首选。
如果您是从eclipse进行调试,请确保在项目的类路径中添加文件夹。
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
如果使用maven archetype创建maven项目并导入eclipse,则需要编辑.classpath文件。
答案 1 :(得分:1)
您必须在main
方法中正确初始化应用程序上下文。例如,您可以查看此link。
答案 2 :(得分:0)
将xml文件放置在类路径的根目录
对于never
的maven,如果该目录尚不存在,请创建它。
src/main/resources/
src / main / resources / spring /也可以正常工作。