Как вставить Spring Bean в xml для factory

169
22 октября 2018, 01:20

Без Spring я инициализировал объект так:

DAOFactory factory = new MySqlDaoFactory
StudentDao studentDao = factory.getStudentDAO(connection)

Как мне это правильно прописать в bean, передать на вход методу getStudentDAO connection ? Я писал так, но выскакивает ошибка:

 <bean id="MySqlDaoFactory" class="mysql.MySqlDaoFactory">
    </bean>
     <bean id="DaoFactory" class="dao.DaoFactory">
    </bean>
    <bean id="Connection" class="mysql.MySqlDaoFactory"
    factory-bean="MySqlDaoFactory" factory-method="getConnection">
    </bean>
    <bean id="studentDao" class="mysql.MySqlStudentDao"
    factory-bean="MySqlDaoFactory" factory-method="getStudentDAO" constructor-arg="Connection">
    </bean>

класс DAOFactory и StudentDao абстрактные

класс MySqlDaoFactory:

public class MySqlDaoFactory extends DAOFactory{
    private Connection connection = null;
    public Connection getConnection() throws DAOException {
        Properties prop = new Properties();
        try {
           ...
        } catch (Exception e) {
            throw new DAOException("Error of connection", e);
        }
        return connection;
    }
     public StudentDao getStudentDAO(Connection connection){
        return new MySqlStudentDao(connection);
    }

MysqlStudentDao наследует абстрактный StudentDao и прописывает все CRUD

Answer 1

вам нужно ссылать на существующий бин Connection, поэтому указываете ссылку на него через constructor-arg ref=

В вашем случае будет

<bean id="studentDao" class="mysql.MySqlStudentDao"
    factory-bean="MySqlDaoFactory" factory-method="getStudentDAO" constructor-arg ref="Connection">
</bean>
READ ALSO
Как правильно указать путь к файлу lang_rus.properties?

Как правильно указать путь к файлу lang_rus.properties?

Помогите пожалуйста! На главной странице приложения я указал для одной из кнопкок text="%ruth_test_main" в fxml файле, теперь хочу подключить файл с русским...

181
Не отображается Fragment

Не отображается Fragment

Имеется NavigateActivity, в которой реализовано отображение навигационного меню

168
Как сравнить два OutputSream&#39;a, понять что содержимое эквивалентно?

Как сравнить два OutputSream'a, понять что содержимое эквивалентно?

Пишу UT и столкнулся с тем, что нужно сравнить expected и actual(полученный в ходе выполнения теста) потоки OutputStreamКак это лучше сделать, желательно...

176