首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vaadin7与紫花莲与春

Vaadin7与紫花莲与春
EN

Stack Overflow用户
提问于 2016-01-29 11:13:32
回答 1查看 253关注 0票数 0

我对Vaadin和Mybatis都很陌生。

我的UI类无法使用@Autowired注释调用服务类。我已经为服务类附加了@Service。

我的看法是:

代码语言:javascript
复制
@SuppressWarnings("serial")
@Theme("test")
@Component
@Scope("prototype")
@SpringView(name = TestUI.ID)
public class TestUI extends UI {

    @WebServlet(value = "/*", asyncSupported = true)
    @VaadinServletConfiguration(productionMode = false, ui = TestUI.class)
    public static class Servlet extends VaadinServlet {
    }
@Autowired 
    UserService service;    
    UserModel model;

我的应用程序context.xml位于“资源”文件夹下。

代码语言:javascript
复制
<ct:annotation-config/>
<ct:component-scan base-package="com.example.test" />
<ct:component-scan base-package="com.example.service" />
<ct:component-scan base-package="com.example.model" />
<ct:component-scan base-package="com.example.mapper" />

DevContext.xml

代码语言:javascript
复制
<context:annotation-config />
<bean id="DEVdataSource" destroy-method="close"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url"
        value="" />
    <property name="" value="" />
    <property name="" value="" />
    <property name="" value="" />
    <property name="maxActive" value="50" />
    <property name="validationQuery" value="select 1 from dual"/>
    <property name="testOnBorrow" value="true"/>
    <property name="connectionInitSqls">
        <list>
            <value>ALTER SESSION SET CURRENT_SCHEMA=null</value>
        </list>
    </property>
</bean>

<!-- setup mybatis bean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="DEVdataSource" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>

<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
    <property name="mapperInterface" value="com.example.mapper.Mapper" />
    <property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

<!-- automatically find mappers -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.example.mapper.**.mapper" />
</bean>

ServiceDevContext.xml

代码语言:javascript
复制
<context:component-scan base-package="com.example"></context:component-scan>

Web.xml

代码语言:javascript
复制
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:resources/applicationContext.xml</param-value>
</context-param>

<context-param>
    <param-name>contextClass</param-name>
    <param-value>
           org.springframework.web.context.support.AnnotationConfigWebApplicationContext
    </param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

代码不起作用,请帮我找出我错过了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-10 16:46:15

尝试在UI子类上使用@SpringUI而不是@SpringView,并且您还需要使用SpringVaadinServlet而不是VaadinServlet,最好的方法可能是删除继承自VaadinServlet的静态Servlet类,而spring将使用正确的servlet。

我还建议去掉xml-config,除非您碰巧喜欢它。start.spring.io支持使用Spring,这是引导项目文件和配置的一种非常简单的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35083099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档