小编sky*_*ker的帖子

无法在单元测试中使用自定义弹簧转换器

我正在使用简单的转换器将字符串转换为枚举。这是自定义转换器:

@Component
public class SessionStateConverter implements Converter<String, UserSessionState> {

    @Override
    public UserSessionState convert(String source) {
        try {
            return UserSessionState.valueOf(source.toUpperCase());
        } catch (Exception e) {
            LOG.debug(String.format("Invalid UserSessionState value was provided: %s", source), e);

            return null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

目前我PathVariable在我的休息控制器中使用 UserSessionState 。实现按预期工作。但是,当我尝试对其余控制器进行单元测试时,似乎转换不起作用并且它没有命中控制器方法。

@RunWith(MockitoJUnitRunner.class)
public class MyTest {
private MockMvc mockMvc;

@Mock
private FormattingConversionService conversionService;

@InjectMocks
private MynController controller;


@Before
public void setup() {
    conversionService.addConverter(new SessionStateConverter());
    mockMvc = MockMvcBuilders.standaloneSetup(controller).setConversionService(conversionService).build();
}


 @Test
public void testSetLoginUserState() throws Exception {
    mockMvc.perform(post("/api/user/login"));
}
Run Code Online (Sandbox Code Playgroud)

}

在调试模式下,我收到以下错误: …

java spring spring-mvc spring-boot

5
推荐指数
2
解决办法
3295
查看次数

仅在角度模板内生成一次随机 ID 号

我想知道页面加载后在角度模板中生成随机 id 的方法。我面临的问题是,每一秒我都会在两个跨度中获得不同的 ID。我希望它在两个地方都相同,并且不希望它每秒都改变其值。这是我的简单模板:

<main class="has-header has-padding">
<div id = "command">-ID:<span>{{vm.getRandomId()}}</span> -connect  -run</div>
    <hr>
<div id = "command">-ID:{{vm.getRandomId()}}</div>
Run Code Online (Sandbox Code Playgroud)

我的控制器:

'use strict';

(function() {
    angular
        .module('myApp')
        .controller('myController.ctrl', myController);

    myController.$inject = ['$scope'];

    function screenSharingCtrl($scope) {
        angular.extend(this, {
            getRandomId:getRandomId
        });

        function getRandomId() {
            return Math.floor((Math.random()*6)+1);
        }
    }
})();
Run Code Online (Sandbox Code Playgroud)

抱歉,如果这是一个重复的问题。任何帮助表示赞赏!谢谢你!

javascript angularjs

2
推荐指数
1
解决办法
2万
查看次数

"d"符号在适用于某个对象的方法列表中代表什么?

谁能告诉我eclipse中方法描述中绿色圆圈旁边的"d"符号是什么意思?

我相信这是"弃用"之类的东西,因为我使用的是java 1.8,我注意到在java 1.7中无法编译相同的代码.据我所知,已弃用的方法由声明+一条线表示.

附上截图以获取更多详细信息.对不起,如果问题重复.谢谢!在此输入图像描述

java eclipse

1
推荐指数
1
解决办法
177
查看次数

无法在hibernate中执行select语句

我有一个动作应该使用id从表中选择一行:

@RequestMapping("/test/{userId}")
@ResponseBody
public void testUserSettings(@DestinationVariable Integer userId){
    System.out.println("test");
    Session session = sessionFactory.openSession();
    Query query = session.createQuery("select us.settings from UserSettings us"
            + " where us.userId = :userId");
    Transaction transaction = null;
    try {
        transaction = session.beginTransaction();
        query.setParameter("userId", userId);
        query.executeUpdate();
        transaction.commit();
    } catch (HibernateException e) {
        if (transaction != null)
            transaction.rollback();
        e.printStackTrace();
    } finally {
        session.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

它调用该方法,因为打印了"test".问题出在声明中.出于某种原因,我在控制台中获得以下输出:

org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for select queries [select us.settings from com.musala.ving.entities.UserSettings us where us.userId = :userId]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfSelect(QueryTranslatorImpl.java:324)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:444)
at org.hibernate.engine.query.spi.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:379)
at …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate hql

0
推荐指数
1
解决办法
4429
查看次数

在linux中添加JAVA_HOME和MAVEN路径​​变量的位置

我知道有很多关于这个主题的文章,但我想知道在哪里添加JAVA_HOME和MAVEN路径​​变量.

我有3个文件:

~/.bashrc
~/.bash_profile
/etc/profile
Run Code Online (Sandbox Code Playgroud)

我应该使用哪一个来添加JAVA_HOME并将maven导出到PATH?

export JAVA_HOME="/path/to/jdk"

export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

java linux maven

-1
推荐指数
1
解决办法
5769
查看次数