Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringJDBCTemplate的最佳方式_Java_Spring_Spring Mvc_Dependency Injection - Fatal编程技术网

Java SpringJDBCTemplate的最佳方式

Java SpringJDBCTemplate的最佳方式,java,spring,spring-mvc,dependency-injection,Java,Spring,Spring Mvc,Dependency Injection,spring.xml文件 <bean id="jdbcTemp" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="portalDataSource" /> </bean> 课堂上 @Repository public class DBUtil{ private static final long serial

spring.xml文件

<bean id="jdbcTemp" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="portalDataSource" />
</bean>

课堂上

    @Repository
public class DBUtil{

    private static final long serialVersionUID = -6203751104015962909L;
    @Autowired
    JdbcTemplate jdbcTemp;

    private static Logger log = Logger.getLogger("scmLogger");

    @Transactional(readOnly=true)
    public List<Map<String, Object>> getData(String qry, Object[] pAttr){
        log.debug("DBUtil.getData() qry "+qry);
        List<Map<String, Object>> vList =  new ArrayList<Map<String,Object>>(); 
        vList = jdbcTemp.queryForList(qry, pAttr);
        return vList;
    }
@存储库
公共类DBUtil{
私有静态最终长serialVersionUID=-62037511104015962909L;
@自动连线
JdbcTemplate jdbcTemp;
私有静态记录器log=Logger.getLogger(“scmLogger”);
@事务(只读=真)
公共列表getData(字符串qry,对象[]pAttr){
log.debug(“DBUtil.getData()qry”+qry);
List vList=new ArrayList();
vList=jdbtemp.queryForList(qry,pAttr);
返回列表;
}
我想知道这个“jdbcTemplate”是否是一个单实例,即我的应用程序中的一个实例。这是最好的使用方法还是其他更好的方法。请建议

当做
Adeeb虽然我不是Spring专业人士,但这个jdbcTemplate是一个单例。Spring管理的每个bean都是单例的,除非另有规定。这种用法没有任何错误。

在Spring中定义bean时,默认情况下它有一个单例作用域

在您的情况下,您没有定义不同的作用域,因此它是单例的


是默认情况下,spring中的所有bean都是
单例的
,以确保您可以在bean标记中指定它

<bean id="jdbcTemp" class="org.springframework.jdbc.core.JdbcTemplate" scope="singleton">
    <property name="dataSource" ref="portalDataSource" />
</bean>

在您的类中,您正在自动连接它,这是最好的方法。请确保xml中的
id
和实例变量名称相同,代码中的
jdbtemp