小编use*_*948的帖子

Spring DI的线程安全影响

在我惯用的例子中,对于团队成员列表的线程安全有什么影响?

我可以依赖run()方法所看到的列表状态来保持一致吗?

假设

  1. setATeamMembers方法仅在创建ATeamEpisodebean 时由spring调用一次

  2. init方法在#1之后由spring(init-method)调用

  3. 这个ATeamMember类是不可变的

    • 我是否需要声明teamMembers volatile或类似?

    • 我忽略了这种方法还有其他可怕的问题吗?

如果这很明显,或者rtfm明显失败,请道歉

感谢致敬

埃德

package aTeam;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class ATeamEpisode implements Runnable{

    private List<ATeamMember> teamMembers;

    /* DI by spring */
    public void setATeamMembers(List<ATeamMember> teamMembers){
        this.teamMembers = new ArrayList<ATeamMember>(teamMembers);    
    }

    private Thread skirmishThread;

    public synchronized void init(){
        System.out.println("Starting skirmish");
        destroy();
        (skirmishThread = new Thread(this,"SkirmishThread")).start();
    }
    public synchronized void destroy(){
        if (skirmishThread != null){
            skirmishThread.interrupt();
            skirmishThread=null; …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection thread-safety

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

使用maven-replacer-plugin替换正则表达式

我想使用maven-replacer-plugin在我的index.html文件中重命名我的javascript import语句.

但是我只想在路径开头的地方这样做 app

index.html代码段

...
<!-- rename this one to app/something12345.js -->
<script src="app/something.js"></script>

<!-- leave this one as it is -->
<script src="vendor/angular.js"></script>
...
Run Code Online (Sandbox Code Playgroud)

到目前为止,在我的pom.xml中,我有maven-replacer-plugin的配置

 <plugin>
     <groupId>com.google.code.maven-replacer-plugin</groupId>
     <artifactId>replacer</artifactId>
     <version>1.5.2</version>
     <executions>
         <execution>
             <phase>prepare-package</phase>
             <goals>
                 <goal>replace</goal>
             </goals>
         </execution>
     </executions>
     <configuration>
         <file>target/${project.build.finalName}/index.html</file>
             <replacements>
                 <replacement>
                     <token>(\.js")</token>
                     <value>12345.js"</value>
                 </replacement>
             </replacements>
     </configuration>
 </plugin>
Run Code Online (Sandbox Code Playgroud)

目前,这显然将取代所有的.js比赛.

我可以在这<token>部分中加入一些神奇的咒语吗?

regex maven maven-replacer-plugin

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