小编Ada*_*old的帖子

如何使用 Spring Security 允许所有请求?

我刚刚将 Spring Security 添加到我的项目中。我还添加了这个配置:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().permitAll();
    }

}
Run Code Online (Sandbox Code Playgroud)

但现在并非我的所有端点都有效。事实上,只有一个端点有效,其余的我都得到了403 Forbidden。可能是什么问题呢?我怎样才能允许任何和所有请求(有效地使安全性成为传递)。

java spring spring-security

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

在Java中实现抽象方法时的问题

我想在OOP中模拟以下情况:

在此输入图像描述

我希望Freight类成为一个抽象类,因为我希望我的程序根据一件货物的危险程度收取一些额外的费用.

实际上我遇到的问题是我希望Freight类是一个对象数组.我的意思是它可以存放一块行李和货物.我的问题是我在哪里可以调用addItem方法?我应该把它放入行李箱和货物类吗?或者我应该将一个名为addItem的通用抽象方法放入Freight类中?像这样的东西(我为此目的使用Java):

abstract class Freight{
//other things here
protected Freight[] fr=Freight[10];
protected int numItems;

abstract addItem();
}

class PieceOfLuggage extends Freight{
//other things
       public PieceOfLuggage(int iden,double weight,int id){
           super(iden,weight,id)
       }
       public addItem(){
           fr[numItems]=this;
           numItems++;
       }
}

class PieceOfCargo extends Freight{
      private degreeHazard;
      public PieceOfCargo(int iden,double weight,int id,int degHazard){
           super(iden,weight,id);
           degreeHazard=degHazard;
      }
      public addItem(){
          fr[numItems]=this;
          numItems++;
      }
}
Run Code Online (Sandbox Code Playgroud)

所以在我的主程序中我可以做类似的事情:

Luggage l1=new Luggage(100,50,1234);   //ident, weight, id
Cargo c1=new Cargo(300,123.56,1111,1); //ident, weight, id, degree of hazard
l1.addItem();
c1.addItem();
Run Code Online (Sandbox Code Playgroud)

任何建议,我可以把addItem方法?,以便类Freight包含行李和货物类型的对象数组?

谢谢

java oop

10
推荐指数
2
解决办法
445
查看次数

Collections.sort()与通过添加到TreeSet中获取排序集合之间的区别?

 Set<Student> ts = new TreeSet<Student>();

    for(Student s : studentInfo){
         ts.add(s);
    }

    System.out.println(ts);
Run Code Online (Sandbox Code Playgroud)

为了对学生对象的集合进行排序,我在上面的一个case块中写了上面的代码片段.我的问题是:使用这种方法和使用Collections.sort();方法有什么区别.

java algorithm collections data-structures

10
推荐指数
2
解决办法
6401
查看次数

如何将Quartz Scheduler连接到Spring上下文中?

我有一个应用程序,我想使用Quartz Scheduler对象.我已经阅读了关于这个的Spring文档,他们建议使用SchedulerFactoryBean这样的:

<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="autoStartup">
        <value>true</value>
    </property>
    <property name="configLocation" value="classpath:quartz.properties" />
</bean>
Run Code Online (Sandbox Code Playgroud)

配置如下所示:

org.quartz.scheduler.skipUpdateCheck = true
org.quartz.scheduler.instanceName = MyQuartzScheduler
org.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
log4j.rootLogger=INFO, stdout
log4j.logger.org.quartz=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
Run Code Online (Sandbox Code Playgroud)

现在,如果我想注入schedulerFactoryBean我的一个对象,我得到一个异常说明:

Could not convert constructor argument value of type [org.quartz.impl.StdScheduler] to required type [org.springframework.scheduling.quartz.SchedulerFactoryBean]:

为什么我得到一个StdScheduler而不是一个schedulerFactoryBean?我错过了配置步骤吗?

java spring quartz-scheduler

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

我可以使用RabbitMQ使用自定义算法而不是循环法调度消息吗?

我正在使用RabbitMQ的循环功能在多个消费者之间分发消息,但一次只有一个消息接收实际消息.

我的问题是我的消息代表任务,我希望我的消费者有本地会话(状态).我事先知道哪些消息属于哪个会话,但我不知道使用我指定的算法将RabbitMQ调度给消费者的最佳方法是什么(或者有办法吗?).

我不想编写自己的编排服务,因为它将成为瓶颈,我不希望我的生产者知道哪个消费者会接收他们的消息,因为我将失去使用Rabbit的解耦.

有没有办法让RabbitMQ根据预定义的算法/规则而不是循环法向消费者发送消息?

澄清:我使用了几种用不同语言编写的微服务,每项服务都有自己的工作.我使用protobuf消息在他们之间进行通信.我给每条新消息一个UUID.如果消费者收到消息,它可以从消息中创建响应消息(这可能不是正确的术语,因为生产者和消费者是分离的,他们彼此不了解)并且这UUID被复制到新消息中.这形成了一个数据转换管道,这个"过程"UUID(processId)标识.我的问题是,它是可能的,我有多个工作的消费者,我需要一个工人UUID,如果它之前已经看到过它.我有这个需要,因为

  1. 每个进程可能都有本地状态
  2. 完成该过程后,我想清理本地状态
  3. 微服务可能会收到同一进程的多条消息,我需要区分哪条消息属于哪个进程

由于RabbitMQ使用循环法在工作人员之间分配任务,因此无法强制我的进程粘在工作者身上.我有几点需要注意:

  • 生产者与消费者脱钩,因此直接消息传递不是一种选择
  • 工作者数量不是恒定的(有一个负载均衡器可能会启动一个工人的新实例)

如果有一个解决方法,不涉及更改循环算法,并没有打破我的约束,它也没关系!

java algorithm rabbitmq

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

我应该在Android应用程序中使用哪种图像格式?

我正在为Android编写游戏,我想知道我应该在游戏图形中使用哪种图像.

我告诉客户以尽可能高(合理)的分辨率创建艺术作品,我会将其缩小,但最近我被告知SVG比普通的PNG更好,因为Android设备使用了很多分辨率并且图像必须缩放.大多数图形将是静止的背景或对象,但会有一些动画.我将AnimationDrawable用于此.

是否有一些图形文件格式的一般准则(我检查了android开发者网站,但没有找到任何东西)或者只是选择我现在拥有的任何东西?

java graphics android

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

Oracle XE停止了工作.TNS听众拒绝连接

我正在开发一个使用Oracle XE 11g作为其RDBMS的应用程序.它工作了几个星期,但现在我开始收到有关连接被拒绝的错误消息.

我重新启动了系统,但没有帮助.我卸载了XE,删除了所有剩余的文件(甚至从注册表中删除)并重新安装它.现在我收到另一条错误消息:

监听器拒绝连接时出现以下错误:ORA-12505,TNS:监听器当前不知道连接描述符中给出的SID

我已经读过这个错误,其他人建议在listener.ora文件中添加一个新的SID:

(SID_DESC =
  (SID_NAME = XE)
  (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我收到另一条错误消息:

ORA-01034:ORACLE不可用ORA-27101:共享内存域不存在

我的配置文件是: listener.ora

    SID_LIST_LISTENER =   (SID_LIST =
    (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
    )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )   )

LISTENER =   (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = AAROLD.in.mycompany.com)(PORT = 1521))
    ) …
Run Code Online (Sandbox Code Playgroud)

database-connection oracle11g

9
推荐指数
3
解决办法
3万
查看次数

有没有像Gradle中的有效pom(Maven)?

几个月前我开始使用Gradle,有时我的build.gradle文件出现问题.例如,如果我在我的文件中添加这样的内容:

apply plugin: 'kotlin'
Run Code Online (Sandbox Code Playgroud)

我不知道会扩展到什么.在我的情况下,我发现它也java插入了java插件,插件本身也设置了一些配置.我怎么知道这些陈述会扩展到什么?Gradle有没有什么有效的build.gradle

澄清:我真正希望知道的是每个apply plugin X声明在幕后做什么而不查阅文档等.

gradle

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

如何使用 css / html 或 javascript 为灰度图像添加颜色?

我有一个 CP437 瓷砖集:

在此输入图像描述

我想将其用作网页上的 CSS 精灵 目前,我有一个非常简单的标记和 css:

.tile {
    display: inline-block;
    width: 16px;
    height: 16px;
}

.cp437-0 {
    background: url('tileset/tileset.png') 0 0;
}

.cp437-1 {
    background: url('tileset/tileset.png') 16px 0;
}

// ...

<span class="tile, cp437-0">&nbsp;</span>
Run Code Online (Sandbox Code Playgroud)

这非常有效,但我还想为这些灰度精灵添加颜色。如何使用 HTML/CSS 或 Javascript 来做到这一点?

是否可以为生成的图像设置背景颜色?

澄清:

我希望能够使用精灵将这些内容绘制到浏览器窗口:

在此输入图像描述 在此输入图像描述

html javascript css colors sprite

9
推荐指数
2
解决办法
3579
查看次数

Kotlin - 类型不匹配:必需:找到上下文:上下文?

我试图制作一个 PopupMenu

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    menu_btn.setOnClickListener {
        var menu: PopupMenu?
        menu = PopupMenu(this.context, it)
        menu.inflate(R.menu.card_menu)

        menu.setOnMenuItemClickListener {
            when(it.itemId) {
                R.id.menu_modify -> { Toast.makeText(context, "Modify", Toast.LENGTH_LONG).show()
                    true }

                R.id.menu_delete -> { Toast.makeText(context, "Delete", Toast.LENGTH_LONG).show()
                    true }

                else -> false
            }
        }

        menu.show()
    }
}
Run Code Online (Sandbox Code Playgroud)

但我在下面看到了摇摆不定的红线

menu = PopupMenu(this.context, it)
Run Code Online (Sandbox Code Playgroud)

那就是:类型不匹配。必需:找到的上下文:上下文?

甚至当我使用 !! - 我收到这个错误

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
    at com.example.emek1.myapplication.FragmentOne.onCreate(FragmentOne.kt:24)
    at android.support.v4.app.Fragment.performCreate(Fragment.java:2414)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1418)
    at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1195)
    at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:1078)
    at …
Run Code Online (Sandbox Code Playgroud)

android kotlin

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