Ich entwickle die Feder MVC + Federsicherheit + Federauflagebeispiel mit mongoDB. In diesem Beispiel zu, ich sehe, dass ich mehr als 200 Klassen (Service and ServiceImpl
) habe und eine Instanz dieser Klassen in Controller
Klassen erstellen, so dass ich die Bean in der applicationContext.xml
konfigurieren muss. Gibt es eine Möglichkeit, alle diese Beans automatisch erstellen zu lassen?Wie vermeidet man das Erstellen von Bean für ServiceImpl-Klassen in der Spring MVC-Anwendung?
applikations config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
<context:annotation-config/>
<mvc:annotation-driven/>
<beans:bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="locations">
<beans:list>
<beans:value>database.properties</beans:value>
</beans:list>
</beans:property>
</beans:bean>
<context:component-scan base-package="com.XXXX.XXX.XXX.model"/>
<mongo:mongo id="mongo" host="${mongo.db.host}" port="${mongo.db.port}"/>
<mongo:repositories base-package="com.XXXX.XXXX.XXX.repositories"/>
<beans:bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<beans:constructor-arg ref="mongo"/>
<beans:constructor-arg name="databaseName" value="${mongo.db.name}"/>
</beans:bean>
<beans:bean id="employeeService" class="com.XXX.XXX.services.EmployeeServiceImpl"/>
<beans:bean id="departmentService" class="com.XXX.XXX.services.DepartmentServiceImpl"/>
<beans:bean id="financeService" class="com.XXX.XXX.services.FinanceServiceImpl"/>
<beans:bean id="siteService" class="com.XXX.XXX.services.SiteServiceImpl"/>
<beans:bean id="helpService" class="com.XXX.XXX.services.HelpServiceImpl"/>
<beans:bean id="facilityService" class="com.XXX.XXX.services.FacilityServiceImpl"/>
<beans:bean id="conditionService" class="com.XXX.XXX.services.ConditionServiceImpl"/>
<beans:bean id="gameService" class="com.XXX.XXX.services.GameServiceImpl"/>
<beans:bean id="reportService" class="com.XXX.XXX.services.ReportServiceImpl"/>
<beans:bean id="roleService" class="com.XXX.XXX.services.RoleServiceImpl"/>
...........
...........
...........
...........
<!-- So many service classes -->
</beans:beans>
Bitte lassen Sie mich wissen, wenn Sie weitere Details benötigen. Ich verwende XML-basierte Konfigurationen.
Wenn ich die Bohnen nicht definieren, dann @ Autowirkung funktioniert in Controller-Klassen der ServiceImpl-Bean –
überhaupt nicht, wenn Sie den Komponenten-Scan in den Service und andere Klassen von @autowire aufgenommen haben funktioniert gut – kuhajeyan