natanaelv 1 de jul. de 2013
Sua conexão é private na Superclasse, para que a subclasse possa herdá-la
ela deve ser no mínimo protected .
dennerl 1 de jul. de 2013
Certo, mas mesmo assim não resolveu meu problema, o Spring não injeta o Objecto conexão ali.
Obrigado.
natanaelv 1 de jul. de 2013
Ok.
Como você está utilizando a classe UnidadeFederativaDAO?
Se você estiver instanciando ela, assim:
UnidadeFederativaDAO unidade = new UnidadeFederativaDAO ()
por exemplo, o Spring não vai conseguir injetar a classe. Isso porque o container
só consegue injetar classes que são gerenciadas pelo mesmo.
dennerl 1 de jul. de 2013
Não estou utilizando ele mesmo para gerenciar.
<bean id="conexao" class="com.tecWebSoft.ser.server.conexao.ConexaoImpl"/>
<bean id="ufDAO" class="portal.UnidadeFederativaDAO"/>
ApplicationContext applicationContext = new ClassPathXmlApplicationContext ( "context.xml" );
DAOImpl < UnidadeFederativa > conexao = ( DAOImpl ) applicationContext . getBean ( "ufDAO" );
conexao . salvar ( null );
natanaelv 1 de jul. de 2013
Esta linha:
DAOImpl < UnidadeFederativa > conexao = ( DAOImpl ) applicationContext . getBean ( "ufDAO" );
te retorna alguma coisa?
dennerl 1 de jul. de 2013
Sim.
DAOImpl < UnidadeFederativa > conexao = ( DAOImpl ) applicationContext . getBean ( "ufDAO" );
System . out . println ( "daoIMpl: " + conexao );
O retorno fica: o toString() do Objecto.
daoIMpl : portal . UnidadeFederativaDAO @7e35 ab86
Tive lendo sobre, eles falam que como meu @autowrite esta na subclasse minha UfDAo está sobre escrevendo está anotação.
natanaelv 1 de jul. de 2013
dennerl 1 de jul. de 2013
public interface DAO < E extends Entidade > {
void salvar ( E ... entidades ) throws ChaveDuplicadaException , IllegalArgumentException , NaoEEntidadeException ;
void deletar ( E ... entidades ) throws IllegalArgumentException , NaoEEntidadeException ;
List < E > listar ( DetachedCriteria dc ) throws IllegalArgumentException ;
E find ( DetachedCriteria dc ) throws IllegalArgumentException ;
}
public class DAOImpl < E extends Entidade > implements DAO < E > {
protected Conexao conexao ;
private static final Logger logger = Logger . getLogger ( DAOImpl . class . getName ());
@Override
public void salvar ( E ... entidades ) throws ChaveDuplicadaException , IllegalArgumentException , NaoEEntidadeException {
System . out . println ( "Conexao ------: " + conexao );
}
@Override
public void deletar ( E ... entidades ) throws IllegalArgumentException {
}
@Override
public List < E > listar ( DetachedCriteria dc ) throws IllegalArgumentException {
return null ;
}
@Override
public E find ( DetachedCriteria dc ) throws IllegalArgumentException {
throw new UnsupportedOperationException ( "Not supported yet." ); //To change body of generated methods, choose Tools | Templates.
}
public Conexao getConexao () {
return conexao ;
}
public void setConexao ( Conexao conexao ) {
this . conexao = conexao ;
}
}
public class UnidadeFederativaDAO extends DAOImpl < UnidadeFederativa > {
public UnidadeFederativaDAO () {
}
@ Override
public void salvar ( UnidadeFederativa ... entidades ) throws ChaveDuplicadaException , IllegalArgumentException , NaoEEntidadeException {
try {
super . salvar ( entidades );
} catch ( ChaveDuplicadaException | IllegalArgumentException | NaoEEntidadeException e ) {
throw e ;
}
}
}
public static void main ( String [] args ) {
try {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext ( "context.xml" );
DAOImpl < UnidadeFederativa > conexao = ( DAOImpl ) applicationContext . getBean ( "ufDAO" );
conexao . salvar ( null );
} catch ( BeansException | IllegalArgumentException | ChaveDuplicadaException | NaoEEntidadeException e ) {
System . out . println ( "Erro: " + e );
}
}
[quote]
[code]
ta na mão!
natanaelv 2 de jul. de 2013
Insira a linha
< context : annotation - config />
no seu context.xml. Essa tag é necessária quando
você quer ativar o suporte a annotations no Spring
dennerl 2 de jul. de 2013
Fecho, muito obrigado.
só está tag mesmo que faltava.