小编Aft*_*ess的帖子

我需要volatile关键字吗?(JAVA)

我只需要如果将多个线程读取它来标记字段挥发的同时

那么线程A改变字段值的场景怎么样呢?线程B在保证线程A完成之后对它进行评估呢?

在我的场景中,是否存在之前发生的关系(没有volatile关键字)?

java multithreading volatile

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

Spring @Value注释不起作用

使用@Value注释的属性未在我的bean上设置.

我的上下文和类位于另一个项目的类路径中的jar内.它的spring上下文导入我的spring上下文,我的spring上下文从类路径加载一个配置文件,并包含各种bean定义.

懒惰加载没有在任何地方使用,我的jar使用Spring 3.1.4,使用我的jar的项目使用Spring 3.2.3.

当外部项目加载它的上下文(导入我的上下文)时,会加载显示属性文件的记录器

[main] INFO  Loading properties file from class path resource [connector-config.properties] - (PropertyPlaceholderConfigurer.java:172:)
Run Code Online (Sandbox Code Playgroud)

摘自我的Spring背景:

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
    lazy-init="false">
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="ignoreResourceNotFound" value="true" />
    <property name="locations">
        <list>
            <value>classpath:connector-config.properties</value>
        </list>
    </property>
</bean>
...
    <!-- The actual beans referenced are not foo bar and com but should not be relevant to this issue -->
<bean id="requestGenerator" class="com.connector.RequestGenerator">
    <constructor-arg name="foo" ref="foo" />
    <constructor-arg name="bar" ref="bar" />
    <constructor-arg name="com" ref="com" />
</bean>
Run Code Online (Sandbox Code Playgroud)

使用我的jar在项目的类路径上的配置文件

ruleType=PAUL
response.poolSize=10
ack.poolSize=10
#This …
Run Code Online (Sandbox Code Playgroud)

java spring

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

loadUpdateData 总是插入整个 CSV

我希望能够编辑我的 CSV 文件的内容,每次更改时,都会添加/修改/删除相应的记录。

使用 loadUpdateData 加上 runOnChange="true",每次 CSV 发生更改时,整个 CSV 内容都会重新插入到数据库中,从而导致大量重复。

在 MySql Community Server 5.7 中使用 liquibase maven 插件 3.0.5

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

<changeSet author="foobar" id="fizzbuzzDataLoad"  runOnChange="true">
    <loadUpdateData
            encoding="UTF-8"
            file="src/main/resources/liquibase/fizzbuzz.csv"
            quotchar=""
            separator=","
            primaryKey="ïntA"
            tableName="fizzbuzz">
        <column name="intA" type="NUMERIC"/>
        <column name="output" type="STRING"/>
    </loadUpdateData>
</changeSet>
</databaseChangeLog>
Run Code Online (Sandbox Code Playgroud)

例子

文件的初始状态 --> 表为空时插入的所有行:

intA,Output
1,1
2,2
3,FIZZ
4,4
5,BUZZ
6,FIZZ
Run Code Online (Sandbox Code Playgroud)

添加新行 --> 再次插入所有行

7,7
Run Code Online (Sandbox Code Playgroud)

数据库看起来像这样:

  intA  Output
    1   1
    2   2
    3   FIZZ
    4   4
    5   BUZZ
    6   FIZZ
    1 …
Run Code Online (Sandbox Code Playgroud)

liquibase

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

在Hibernate中过滤

我有一个非常简单的一对多关系,并希望使用in子句过滤多边(集合).我无法让过滤器工作.Hibernate都抱怨过滤器参数是未定义的(当使用Set或Integer作为类型时)或者说传入的值是错误的类型(当使用int参数类型时)

关系:类别有很多测试用例,测试用例只有一个类别

POJO#1

@Entity
@Table(name = "CATEGORY")
public class Category
{
    @Id
    @Column(name = "CATEGORYID")
    private int ID;

    @Column(name = "CATEGORYNAME")
    private String name;

    @OneToMany(fetch = FetchType.EAGER)
    @JoinColumn(name = "CATEGORYID")
    @Filter(name = "TEST_RUN_ID_FILTER")
    private Collection<SimpleTestCase> testCases;
}
Run Code Online (Sandbox Code Playgroud)

Pojo#2

@Entity
@Table(name = "TESTCASE_NEW")
@FilterDef(name = "TEST_RUN_ID_FILTER", defaultCondition = "TESTRUNID in (:IDS)", parameters = { @ParamDef(name = "IDS", type = "Integer") })
public class SimpleTestCase
{
    @Id
    @Column(name = "TESTCASEID")
    private int ID;

    @Column(name = "TESTCASENAME")
    private String name;

    @Column(name = "STATUS") …
Run Code Online (Sandbox Code Playgroud)

annotations hibernate filter one-to-many

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

BigDecimal setScale被忽略了吗?

    setValue(BigDecimal value)
    {
      this.value=value;
      this.value.setScale(8, RoundingMode.HALF_DOWN);
    }

    BigDecimal getValue()
    {
       return value;
    }

   setValue(0.0314159*Math.random());
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但是getValue()生成的BigDecimals的小数位数比8小很多.

我究竟做错了什么 ?

java bigdecimal

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

Angular promises - 无法读取未定义的属性

我试图在视图中显示promise的结果,但是我得到了这个例外.我在Google/SO上发现的此异常的其他情况是由我在代码中看不到的错误引起的.

我已经验证我正在使用promises,我正在解决传递给$ timeout的函数内部的promise,我从函数getData()返回promise,而不是解析promise的函数.

提前致谢.

查看器

<html ng-app="controller" ng-controller="MyController as controller">
<head>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.16/angular.min.js"></script>
  <script type="text/javascript" src="controller.js"></script>
  <script type="text/javascript" src="services.js"></script>
</head>
<body>
  {{data}}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

控制器(controller.js)

   angular.module('controller', ['services'])
    .controller('MyController', ['MyService', function(MyService) {

      MyService.getData().then(function(data) {
        $scope.data = data;
      });
    }]);
Run Code Online (Sandbox Code Playgroud)

服务(services.js)

angular.module('services', [])
.factory('MyService', function($q, $timeout){
  var getData = function getData() {

    var deferred = $q.defer;

    $timeout(function () {
      deferred.resolve('Foo');
    }, 5000);

    return deferred.promise;
  };

  return {
    getData: getData
  };
});
Run Code Online (Sandbox Code Playgroud)

异常堆栈跟踪

TypeError: Cannot read property 'then' of undefined
    at new …
Run Code Online (Sandbox Code Playgroud)

angularjs

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

验证 API 密钥和 JWT 令牌是微服务的责任吗?

我的微服务将以两种方式调用: 1. 由公共网站的未经身份验证的用户调用。2. 通过内部 UI 的经过身份验证的用户来执行管理功能。

我计划使用 OIDC 和 JWT 令牌来验证管理员用户从管理 UI 发出的 API 调用。该令牌中将包含声明,微服务将使用该声明来确定用户是否有权访问此 API。

我计划使用面向公众的网站上的 API 密钥来进行未经身份验证的用户进行的 API 调用。微服务将验证 API 请求标头中的 API 密钥,以确定 API 调用是否来自可信来源。

问题

  • 这是处理身份验证和授权的正常/可接受的方式吗?
  • 微服务有责任评估 JWT 令牌和 API 密钥吗?每个微服务都必须在我的设计中做到这一点。

authentication authorization api-key jwt microservices

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