将spring bean配置文件放在什么位置

时间:2014-09-16 17:26:40

标签: java spring maven

我正在使用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;
    }
}

Dao层:

package com.vipin.dao;
import com.vipin.model.User;

public interface DBOpsDao {
    boolean add(User user);
    boolean find(int ssnId);
}

实现(skelton)实现的类是:

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文件?

任何输入都会有所帮助。

3 个答案:

答案 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 /也可以正常工作。