2

我正在尝试使用 Spring 3 为不同的配置文件实现应用程序,但我不确定它是如何使用 Spring 3 开发的。我有几个困惑

  1. 当您使用 PropertyPlaceholderConfigurer 开发应用程序时,您如何创建传递给 DAO 类的会话因子对象?
  2. 如何为每个属性文件创建配置文件。假设我想传递一个“Dev”参数,然后从 dev.proertie 文件中传递应用程序准备好的属性文件,然后将其传递给应用程序。
  3. 我刚刚在谷歌上阅读了一些教程,大多数教程都遵循每个类中的硬编码配置文件名称,例如每个 DAO 类中的@Profile("dev")。有什么方法可以自动执行它意味着如何注入 DAO 类?我不想在每个班级都添加个人资料名称

这是我的申请清单

这是简单模型对象。

** Employee.Java**

public class Employee {
  private String name;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}

这个类处理数据库。所以我想在这个类中有会话对象而不是数据源对象。

员工 DAO 类

public class EmployeeDao {
  private DataSource dataSource;
  public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
  }
  public void insert(Employee employee){
   String sql = "insert into employee(name) VALUES (?)";
   Connection conn = null;
   try {
     conn = dataSource.getConnection();
     PreparedStatement ps = conn.prepareStatement(sql);
     ps.setString(1, employee.getName());
     ps.executeUpdate();
     ps.close();
     conn.close();
   } 
   catch (SQLException sqle) {
     System.out.println("Sql Exception " + sqle.getMessage());
   }
 }

此类实际上从属性文件中读取数据,但不确定如何构建注入我的 DAO 类的会话对象

配置文件

public class Config {
  @Bean
  public static PropertyPlaceholderConfigurer properties(){
   PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
   ClassPathResource[] resources = new ClassPathResource[ ]
   { new ClassPathResource( "db.properties" ) };
   ppc.setLocations( resources );
   ppc.setIgnoreUnresolvablePlaceholders( true );
   return ppc;
  }
  @Value( "${jdbc.url}" ) private String jdbcUrl;
  @Value( "${jdbc.driverClassName}" ) private String driverClassName;
  @Value( "${jdbc.username}" ) private String username;
  @Value( "${jdbc.password}" ) private String password;
  @Bean(name="datasource")
  public DataSource datasource() {
    BasicDataSource ds = new BasicDataSource();
    ds.setDriverClassName(driverClassName);
    ds.setUrl(jdbcUrl);
    ds.setUsername(username);
    ds.setPassword(password);
    return ds;
  }
  @Bean(name="employee")
  public Employee employee() {
    Employee employee = new Employee();
    employee.setName("Sahil");
    return employee;
  }

  @Bean(name="employeeDao")
  public EmployeeDao employeeDao() {
  EmployeeDao employeeDao =  new EmployeeDao();
  employeeDao.setDataSource(datasource());
  return employeeDao;
}
4

0 回答 0