我刚刚将 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。可能是什么问题呢?我怎样才能允许任何和所有请求(有效地使安全性成为传递)。
我想在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包含行李和货物类型的对象数组?
谢谢
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();方法有什么区别.
我有一个应用程序,我想使用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?我错过了配置步骤吗?
我正在使用RabbitMQ的循环功能在多个消费者之间分发消息,但一次只有一个消息接收实际消息.
我的问题是我的消息代表任务,我希望我的消费者有本地会话(状态).我事先知道哪些消息属于哪个会话,但我不知道使用我指定的算法将RabbitMQ调度给消费者的最佳方法是什么(或者有办法吗?).
我不想编写自己的编排服务,因为它将成为瓶颈,我不希望我的生产者知道哪个消费者会接收他们的消息,因为我将失去使用Rabbit的解耦.
有没有办法让RabbitMQ根据预定义的算法/规则而不是循环法向消费者发送消息?
澄清:我使用了几种用不同语言编写的微服务,每项服务都有自己的工作.我使用protobuf消息在他们之间进行通信.我给每条新消息一个UUID.如果消费者收到消息,它可以从消息中创建响应消息(这可能不是正确的术语,因为生产者和消费者是分离的,他们彼此不了解)并且这UUID被复制到新消息中.这形成了一个数据转换管道,这个"过程"由UUID(processId)标识.我的问题是,它是可能的,我有多个工作的消费者,我需要一个工人粘到UUID,如果它之前已经看到过它.我有这个需要,因为
由于RabbitMQ使用循环法在工作人员之间分配任务,因此无法强制我的进程粘在工作者身上.我有几点需要注意:
如果有一个解决方法,不涉及更改循环算法,并没有打破我的约束,它也没关系!
我正在为Android编写游戏,我想知道我应该在游戏图形中使用哪种图像.
我告诉客户以尽可能高(合理)的分辨率创建艺术作品,我会将其缩小,但最近我被告知SVG比普通的PNG更好,因为Android设备使用了很多分辨率并且图像必须缩放.大多数图形将是静止的背景或对象,但会有一些动画.我将AnimationDrawable用于此.
是否有一些图形文件格式的一般准则(我检查了android开发者网站,但没有找到任何东西)或者只是选择我现在拥有的任何东西?
我正在开发一个使用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) 几个月前我开始使用Gradle,有时我的build.gradle文件出现问题.例如,如果我在我的文件中添加这样的内容:
apply plugin: 'kotlin'
Run Code Online (Sandbox Code Playgroud)
我不知道会扩展到什么.在我的情况下,我发现它也java插入了java插件,插件本身也设置了一些配置.我怎么知道这些陈述会扩展到什么?Gradle有没有什么有效的build.gradle?
澄清:我真正希望知道的是每个apply plugin X声明在幕后做什么而不查阅文档等.
我有一个 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"> </span>
Run Code Online (Sandbox Code Playgroud)
这非常有效,但我还想为这些灰度精灵添加颜色。如何使用 HTML/CSS 或 Javascript 来做到这一点?
是否可以为生成的图像设置背景颜色?
澄清:
我希望能够使用精灵将这些内容绘制到浏览器窗口:
我试图制作一个 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)