我想在初始化bean之前从类路径或外部位置的属性文件中加载属性。这些属性也是Bean初始化的一部分。我无法从Spring的标准application.properties或其自定义项自动装配属性,因为同一属性文件必须可由多个可部署对象访问。
我知道Spring应用程序事件;实际上,在初始化Spring Context之后,我已经钩住 ContextRefreshedEvent来执行一些任务(在此阶段还初始化了Bean)。
对于我的问题声明,从Spring Docs的描述来看ApplicationEnvironmentPreparedEvent,它看起来很有希望,但是该挂钩没有用。
@SpringBootApplication
public class App {
public static void main(String[] args) throws IOException {
SpringApplication.run(App.class, args);
}
@EventListener
public void onStartUp(ContextRefreshedEvent event) {
System.out.println("ContextRefreshedEvent"); // WORKS
}
@EventListener
public void onShutDown(ContextClosedEvent event) {
System.out.println("ContextClosedEvent"); // WORKS
}
@EventListener
public void onEvent6(ApplicationStartedEvent event) {
System.out.println("ApplicationStartedEvent"); // WORKS BUT AFTER ContextRefreshedEvent
}
@EventListener
public void onEvent3(ApplicationReadyEvent event) {
System.out.println("ApplicationReadyEvent"); // WORKS WORKS BUT AFTER ContextRefreshedEvent
}
public void …Run Code Online (Sandbox Code Playgroud) 我的团队维护一个应用程序(用 Java 编写),用于处理长时间运行的批处理作业。这些作业需要按定义的顺序运行。因此,应用程序在预定义的端口上启动套接字服务器以接受作业执行请求。它使套接字保持打开状态,直到作业完成(成功或失败)。这样,作业调度程序就知道一个作业何时结束,并且在成功完成该作业后,它会按预定义的顺序触发下一个作业。如果作业失败,调度程序会发出警报。
这是我们十多年来一直采用的设置。我们有一些作业需要运行几分钟,而另一些则需要几个小时(取决于数量)才能完成。该设置工作正常,没有任何问题。
现在,我们需要将此应用程序移至容器(RedHat OpenShift Container Platform),并且现有的基础设施策略仅允许公开默认的 HTTPS 端口。调度程序位于 OCP 外部,无法访问默认 HTTPS 端口以外的任何端口。
理论上,我们可以使用 HTTPS,将客户端超时设置为非常长的持续时间,并尝试模仿 TCP 套接字的当前设置。但是,由于 HTTP 协议是为服务短期请求而设计的,因此这种设置足够可靠吗?
存储在服务器中的文件例如具有400×600像素的尺寸.但是在网站的不同部分,我们需要不同维度的相同图片.对于缩略图,我们通常需要50 X 50像素,如果我们选择下载具有原始尺寸的相同图片,则需要更长时间并且页面加载会减慢.如果调整该图片的大小,其大小将会下降得更多(例如,500 KB到50 KB).所以,我想要的是,在浏览器下载图片之前,服务器应该将图片大小调整为PHP脚本中所需的尺寸.
这就是通常在 Google Analytics 的跟踪代码中设置 cookie 域的方式。我理解auto并且none是另外两个选项。
ga('create', 'UA-45015643-1', 'example.com');
上面的代码是通用跟踪代码的一部分,将 cookie 域设置为.example.com.

将 cookie 域设置为.example.com使其所有子域都可以访问 cookie。但是我已经设置了一个无 cookie 域http://static.example.com来下载静态内容,我不希望 cookie 与这种类型的静态资源请求一起发送。所以,我试过这个:
ga('create', 'UA-45015643-1', 'www.example.com');
这导致 cookie 域被设置为.www.example.com. 显然,此更新后跟踪工作正常(我使用实时视图进行验证)。
但我想确定这是否真的没有副作用或者不是一个坏习惯。
我最近读了一篇关于密码哈希的文章.
如何创建MD5或SHA1哈希值,使其无法解密?我认为,它必须是某个FORMULA的字符串(它总是为同一个字符串提供相同的哈希值;因此必须没有随机化)这就是为什么我们应该能够通过相同的FORMULA解密它?或者人们不知道论坛?
我正在开发一个C#/ XAML metro应用程序,我在其中使用JSON REST服务.如何将JSON响应反序列化为文本或自定义对象?
json microsoft-metro windows-8 windows-runtime windows-store-apps
目前,我正在要求用户提供两个读权限,即email和user_location和一个写PERMSSION即publish_actions.以下是我用来验证用户是否已授予所有请求权限的代码段:
$facebook = new Facebook(APP_ID, APP_SECRET, REDIRECT_URI);
if ( $facebook->IsAuthenticated() ) {
// Verify if all of the scopes have been granted
if ( !$facebook->verifyScopes( unserialize(SCOPES) ) ) {
header( "Location: " . $facebook->getLoginURL( $facebook->denied_scopes) );
exit;
}
...
}
Run Code Online (Sandbox Code Playgroud)
Facebook是我自定义构建的类,用于包装SDK中各种类使用的登录流.IsAuthenticated()使用codeget变量来检查用户是否被授权.verifyScopes()检查授予对属性SCOPES的拒绝范围数组并对其进行分配的权限denied_scopes.getLoginURL()`根据作为数组作为唯一参数传递的权限构建登录对话框URL.
现在,问题是当用户没有授予写权限时,publish_actions在这种情况下,显示写权限对话框,直到用户授予写权限.但是,如果用户选择拒绝读取权限,email则说明不显示读取登录对话框.相反,Facebook重定向到回调URL(即REDIRECT_URI)创建重定向循环.
我正在建立的应用程序需要email强制提供,但显然上述方法(似乎是唯一的)失败了.那么,是否有解决方法或替代方法来实现这一目标?或Facebook一旦被拒绝就不允许要求读取权限?
facebook-graph-api oauth-2.0 facebook-oauth facebook-php-sdk facebook-graph-api-v2.0
我有一个BaseRestControllerRest控制器扩展的类.它有一个我想异步运行的方法.
public abstract class BaseRestController {
...
@Async("someThreadPoolTaskExecutor")
public void someAsyncTask() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
@RestController
public class MyRestController extends BaseRestController {
...
@GetMapping("/some/path")
public SomeEntity getSomething() {
...
this.someAsyncTask();
}
}
Run Code Online (Sandbox Code Playgroud)
我已经启用了Async使用注释,实现了一个获取someThreadPoolTaskExecutor TaskExecutor的方法.如果我把@Async("someThreadPoolTaskExecutor")一个服务的(类注释@Service)方法,它的工作原理,但如果我这样做someAsyncTask()在BaseRestController的代码不会异步运行.使用@Component装饰类也不起作用.
Async的春季指南也没有帮助.在它的演示中,它还演示了与服务类的Async.
虽然在这个过程中,我意识到我想要实现的行为最好委托给服务类,但我很好奇理解为什么上面的行为不起作用.
我正在使用Spring Boot的2.1.0.RELEASE.
我想通过单词的开头计算ArrayList中每个单词的频率.例如[cat,cog,mouse]意味着有两个单词以c开头,一个单词以m开头.我的代码工作正常,但字母表中有26个字母,如果是s 则需要更多.有没有其他方法这样做?
public static void countAlphabeticalWords(ArrayList<String> arrayList) throws IOException
{
int counta =0, countb=0, countc=0, countd=0,counte=0;
String word = "";
for(int i = 0; i<arrayList.size();i++)
{
word = arrayList.get(i);
if (word.charAt(0) == 'a' || word.charAt(0) == 'A'){ counta++;}
if (word.charAt(0) == 'b' || word.charAt(0) == 'B'){ countb++;}
}
System.out.println("The number of words begining with A are: " + counta);
System.out.println("The number of words begining with B are: " + countb);
}
Run Code Online (Sandbox Code Playgroud) <input id="btnupdate" type="button" value="Update" onclick="update()"/>
<img id="loadupdate" src="http://localhost/connectu/styles/images/load_big.gif">
Run Code Online (Sandbox Code Playgroud)
此代码由PHP脚本返回以响应AJAX请求.update()函数包含隐藏按钮和图像的代码.
document.getElementById('btnupdate').style.display='none';
document.getElementById('loadupdate').style.display='none';
Run Code Online (Sandbox Code Playgroud)
update()函数位于本机文件中.但问题是,图像隐藏但不是按钮.我试过FIREBUG.没有javascript错误.
java ×4
javascript ×2
spring ×2
spring-boot ×2
cookies ×1
http ×1
json ×1
oauth-2.0 ×1
optimization ×1
php ×1
resize-image ×1
windows-8 ×1