Darknesstiller
Darknesstiller

Reputation: 39

How to replace aplication-context.xml with .java file

I've worked a few proyects using Spring Framework, and I had a couple of problems with the definition of application-context.xml and its relation with the database.

I solved those problems using Hibernate

However I want to know how I could replace the xml file with a java file, like I had done with web.xml

package com.test.spring.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.servlet.view.UrlBasedViewResolver;

@Configuration //Marks this class as configuration
//Specifies which package to scan

@ComponentScan("com.test.spring")
//Enables Spring's annotations

@EnableWebMvc
public class Config {   
    @Bean
    public UrlBasedViewResolver setupViewResolver() {
        UrlBasedViewResolver resolver = new UrlBasedViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
        return resolver;
    }
}

This is my application-context.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">


    <bean id="dataSource" 
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
        <property name="url" value="jdbc:mysql://localhost:3306/database" />  
        <property name="username" value="root"/>  
        <property name="password" value="00000"/> 
    </bean>  
</beans>

Upvotes: 0

Views: 692

Answers (1)

TheEwook
TheEwook

Reputation: 11117

Something like this:

@Configuration
public class ContextConfiguration {

    @Bean
    public DataSource dataSource() {
        final DriverManagerDataSource ds = new DriverManagerDataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/database");
        ds.setUsername("root");
        ds.setPassword("00000");
        return ds;
    }

}

Upvotes: 2

Related Questions