我正在做我的日常工作,我意识到尽管我经常使用@Configuration,但我不知道它到底是如何工作的,在阅读了 spring.io 文档后,我无法确定 @Configuration 是否是一种制作单例类。
\n\n所以......我想我的问题是:
\n\n我应该使用什么来正确创建单例 @Configuration 或 @Component?这是为什么'?
\n\n我一直在研究这两个选项,并举了两个这样的例子:
\n\n第一个例子
\n\n@Configuration\npublic static class Config {\n\n @Bean\n public SimpleBean simpleBean() {\n return new SimpleBean();\n }\n\n @Bean\n public SimpleBeanConsumer simpleBeanConsumer() {\n return new SimpleBeanConsumer(simpleBean());\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n第二个例子
\n\n@Component\npublic static class Config {\n\n @Bean\n public SimpleBean simpleBean() {\n return new SimpleBean();\n }\n\n @Bean\n public SimpleBeanConsumer simpleBeanConsumer() {\n return new SimpleBeanConsumer(simpleBean());\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n第一段代码工作正常,并且正如预期的那样,SimpleBeanConsumer 将获得指向单例 SimpleBean 的链接。但不幸的是,它不能在签名环境中工作。
\n\n第二种配置是完全不正确的,因为spring会创建一个SimpleBean的单例bean,但是SimpleBeanConsumer会获得另一个不受spring上下文控制的SimpleBean实例。
\n\n这种行为的原因可以解释如下:
\n\n如果使用 @Configuration,所有标记为 @Bean 的方法都将被包装到 …
我在我的veracode报告中得到了下一个发现:XML外部实体参考的不当限制('XXE')(CWE ID 611)参考下面的代码
...
> DocumentBuilderFactory dbf=null; DocumentBuilder db = null; try { dbf=DocumentBuilderFactory.newInstance();
> dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
> dbf.setExpandEntityReferences(false);
> dbf.setXIncludeAware(false); dbf.setValidating(false); db =
> dbf.newDocumentBuilder();
> InputStream stream = new ByteArrayInputStream(datosXml.getBytes());
> Document doc = null; doc= db.parse(stream, "");
Run Code Online (Sandbox Code Playgroud)
...
我一直在研究,但我没有找到这个发现的理由或使它消失的方法.你能告诉我怎么做吗?
我正在用prime-ng实验尝试一些angular 5,我发现了一些困难(相对于angular 5),我用下一个模板制作了一个组件:
<p>Chemi-tabla works! Y ahora un mensage de nuestros patrocinadores: {{this.nombre}}</p>
<p-dataTable [value]="_postsArray" [loading]="loading"
loadingIcon="fa-spinner" [rows]="10" [paginator]="true"
[multiSortMeta]="multiSortMeta" selectionMode="Single" [(selection)]="selectedUserInfo">
<p-header>Cabecera de la Chemi Tabla.</p-header>
<p-footer>Lo de abajo de la chemi tabla, vamos lo que va arrastrando.</p-footer>
<p-column selectionMode="single"></p-column>
<p-column field="userId" header="Usuario ID" sortable="true" [filter]="true" filterPlaceholder="Search"></p-column>
<p-column field="id" header="IDE" sortable="true" [filter]="true" [filter]="true" filterPlaceholder="Search"></p-column>
<p-column field="title" header="Título" sortable="true" [filter]="true" filterMatchMode="contains"></p-column>
<p-column field="body" header="Body" sortable="true" [filter]="true" filterMatchMode="contains"></p-column>
</p-dataTable>
Run Code Online (Sandbox Code Playgroud)
但是这条线:
<p>Chemi-tabla works! And now a message: {{this.nombre}}</p>
Run Code Online (Sandbox Code Playgroud)
没有在 {{this.nombre}} 中打印 anithing,如果我调试组件中的代码,它的值是未定义的。 …
我必须能够重复用我的代码进行的实验,它会产生一些随机数,我需要得到我的新random()句子的初始化值.我有这句话来制作我使用的随机对象
Dim r As Random = New Random()
Run Code Online (Sandbox Code Playgroud)
正如我所读到的,它从系统日期时间获取初始化值.如果实验成功,我需要能够重复它.我怎么能得到初始化号码才能做到:
Dim r As Random = New Random(OldInitializationValue)
Run Code Online (Sandbox Code Playgroud)
我想每次执行我的应用程序时我都必须自己创建一个Initialization值但是如果有一种方法可以保存它,我很高兴知道它.
提前感谢您的回答.
我必须在电子邮件中嵌入图像
<img src="....." style="float:right;height;400px;"/>
Run Code Online (Sandbox Code Playgroud)
我以这种方式创建和替换视图
try{
System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Html);
AlternateView avHTMLImage = AlternateView.CreateAlternateViewFromString(msgMail.Mensaje, mimeType);
LinkedResource lrHTMLImage;
System.IO.MemoryStream img = new System.IO.MemoryStream(Imagen.Image2Bytes(ie.img));
lrHTMLImage = new LinkedResource(img, System.Net.Mime.MediaTypeNames.Image.Jpeg);
lrHTMLImage.ContentId = ie.nombreImg;
avHTMLImage.LinkedResources.Add(lrHTMLImage);
avHTMLImage.ContentId = ie.nombreImg;
this.mail.AlternateViews.Add(avHTMLImage);
}
Run Code Online (Sandbox Code Playgroud)
但它是附加和嵌入图像没有浮动的设置,我告诉它的高度