Spring + HIbernate + Jasper

Galera minha duvida é o seguinte eu uso spring 3 hibernate 3 e jasper 4,
para gera relatorio estou usando assim

 public void gerarRelatorio() throws JRException, IOException {


        try {
            con = new Conexao().getConnection(); // Faz a conexão
        } catch (SQLException ex) {
            Logger.getLogger(AnexarController.class.getName()).log(Level.SEVERE, null, ex);
        }
        // Na variavel pathJasper ficara o caminho do diretório para
// os relatórios compilados (.jasper)
        String pathJasper = FacesContext.getCurrentInstance().getExternalContext().getRealPath(
                "/WEB-INF/classes/br/com/sisacad/relatorio/")
                + "/";

// A variavel path armazena o caminho real para o contexto
// isso é util pois o seu web container pode estar instalado em lugares diferentes
       String cam = FacesContext.getCurrentInstance().getExternalContext()
               .getRealPath("../../../../public_html/download/escola/logoBack.jpg");
        System.out.println("CAM" + cam);
        ImageIcon gto = new ImageIcon(cam);
        HashedMap parametro = new HashedMap();
        parametro.put("logoBack", gto.getImage());

        String path = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/system/temp");
        JasperPrint jp = JasperFillManager.fillReport(pathJasper + "AlunoCursando.jasper", parametro, con);
        // String file = String.valueOf(GregorianCalendar.getInstance().getTimeInMillis()) + String.valueOf(GregorianCalendar.getInstance().hashCode());

        JasperExportManager.exportReportToPdfFile(jp, path + "/AlunoCursando.pdf");

        
        FacesContext.getCurrentInstance().getExternalContext().redirect("system/temp/AlunoCursando.pdf");
//            JasperViewer jrv = new JasperViewer(jp);
//            jrv.setVisible(true);

        new Conexao().conexaoClose(con);


    }

o que eu quero focar é o seguinte, no spring ja tenho um dataSource para a conexao com o banco, por nao saber como integrar o jasper ao spring, o q eu faço. Crio uma conexao passo como parametro no ob JasperPrint e depois fecho a conexao no fim do metodo.
minha duvida é? gerar o relatorio assim é um erro? prejudica no desempenho da minha aplicaçao?