2016-12-09 2 views
0

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.

Antwort

1

Da Sie Component-Scan aktiviert haben, sollten Sie in der Lage sein, die Klassen mit Stereotypmarkierungen zu markieren, damit sie automatisch aufgenommen werden. Also keine Notwendigkeit, sie in Ihrem xml

ex definieren.

  • Services -> @Service

  • Controller -> @Controller

  • Komponenten oder andere Bohnen -> @Component

+0

Wenn ich die Bohnen nicht definieren, dann @ Autowirkung funktioniert in Controller-Klassen der ServiceImpl-Bean –

+0

überhaupt nicht, wenn Sie den Komponenten-Scan in den Service und andere Klassen von @autowire aufgenommen haben funktioniert gut – kuhajeyan

Verwandte Themen