我正在尝试将java.util.prefs.Preferences bean注入我的主控制器.控制器看起来像:
@Controller
class MyController {
@Autowired
private Preferences preferences;
}
Run Code Online (Sandbox Code Playgroud)
application-context.xml文件为java.util.prefs.Preferences创建bean.它使用工厂方法,所以我有以下条目来创建bean:
<bean id="preferences" class="java.util.prefs.Preferences" factory-method="userNodeForPackage" />
Run Code Online (Sandbox Code Playgroud)
Preferences.userNodeForPackage(param)为参数提供与Preference相关的类.在这种情况下,Spring需要通过执行调用来创建bean:
Preferences.userNodeForPackage(MyController.class);
Run Code Online (Sandbox Code Playgroud)
如何将类传递给使用工厂方法实例化的spring bean?谢谢
环境信息:
Java 7
Spring 3.1
Run Code Online (Sandbox Code Playgroud) 在Spring 3发行版中,有一个项目文件夹包装在发行版中.此项目文件夹applicationContext.xml包含可以使用的示例文件.但是,当我从这里下载Spring 4发行版时,它没有项目文件夹,我无法找到样本applicationContext.xml.我在哪里可以找到示例applicationContext.xml文件.
我想实时查看使用了多少内存,例如,每次设置或插入一些数据时,我想知道增加了多少内存以及总共使用了多少内存。
我尝试使用INFO命令,并检查used_memory或used_memory_*属性是否有效,但抱歉我发现它只显示系统分配的内存,因为每次插入新数据后检查它,它们仍然保持不变
有什么办法可以查看Redis的实时内存使用情况吗?
在我们的spring应用程序中,我们HttpServletRequest以两种方式使用:
(这里的代码简洁,似乎毫无意义)
在控制器中:
@RequestMapping(value = "/hello", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<String> hello(HttpServletRequest request) {
System.out.println("## controller req.hashcode: " + request.hashCode());
System.out.println("## header 'abc': " + request.getHeader("abc"));
return new ResponseEntity<String>("OK", HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)在正常组件中:
@Component
class RequestService {
private final HttpServletRequest request;
@Autowired
public RequestService(HttpServletRequest request) {
this.request = request;
}
public String getHeaderAbc() {
System.out.println("## service req.hashcode: " + request.hashCode());
return this.request.getHeader("abc");
}
}
Run Code Online (Sandbox Code Playgroud)起初,我认为第二种方式是完全错误的,因为它应该只注入request一次实例.因此,无论何时调用getHeaderAbc()方法,它都应返回相同的值(第一个请求).
但是当我尝试它时,我发现了一些有趣的东西:
request.hashCode()控制器中始终是不同的(如我所料)request.hashCode()中RequestService始终是相同的(我认为) …我正在使用Spring框架编写一些集成测试。对于不同的集成测试类,我有不同的SQL脚本。像这样:
@ContextConfiguration(classes = ...)
@Sql("classpath:sportCenter-test.sql")
public class SportCenterResourceIT {
...
}
Run Code Online (Sandbox Code Playgroud)
除了在每次测试之前执行SQL脚本(而不是每个类一次)的事实之外,所有其他功能都可以正常运行。我已经搜索了一段时间的spring文档,但是找不到与该选项相关的东西。
有人可以给我一个提示吗?
我使用j meter进行负载测试,我必须通过http请求调用上传Image API并实现这一点我必须将图像转换为压缩字节数组,以通过http请求将其作为发布数据发送出去.
任何人都可以通过jmeter帮助我如何实现.
真的很感激你的帮助.
我有一个像这样的 mysql 表:
CREATE TABLE `sezione_menu` (
`id_sezione_menu` int(11) unsigned NOT NULL AUTO_INCREMENT,
`nome` varchar(256) NOT NULL DEFAULT '',
`ordine` int(11) DEFAULT NULL,
PRIMARY KEY (`id_sezione_menu`)
)ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
我使用 apache dbutils 来查询我的数据库,方法如下:
public static List<SezioneMenu> getSezioniMenu() {
String sql = "SELECT * FROM sezione_menu";
try {
QueryRunner qr = new QueryRunner(createDataSource());
ResultSetHandler rsh = new BeanListHandler(SezioneMenu.class);
List<SezioneMenu> sezioni = (List<SezioneMenu>)qr.query(sql, rsh);
return sezioni;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
private static DataSource createDataSource() { …Run Code Online (Sandbox Code Playgroud) 正如我们所知,当我们创建String对象时,将创建String value = new String("ABC");
新String对象,当我们再次使用值变量时,将创建value="xyz"一个新String对象.
所以我的问题是,之前创建的String对象将在何时被垃圾收集?
如果我正在编写HelloWorld,有没有办法只需输入HelloWorld即可从任何目录运行该程序?设置Ant后,以同样的方式排序,您可以从任何目录运行Ant吗?
仅仅为了一些细节,我们正在为客户创建一个基于CLI的工具包,并且好奇我们是否可以编译它,安装它,并让它们使用工具包名称运行它.
你速记的Java算术运算符的一个例子是a += 4;用于a=a+4;
在完整参考文献Java 2中,Herbert Schildt提到"Java运行时系统比它们的等效系统更有效地实现它们"
是什么让它的实现更有效率 a=a+4;
java ×5
spring ×4
spring-mvc ×2
autowired ×1
class ×1
factory ×1
file-upload ×1
httprequest ×1
javabeans ×1
jmeter ×1
linux ×1
load-testing ×1
mysql ×1
operators ×1
performance ×1
preferences ×1
redis ×1
shorthand ×1
spring-bean ×1
spring-test ×1
string ×1
terminal ×1
xml ×1