This example presents the basic concept of using in Spring the XML based configuration.
The technologies used are :
 – Spring 4.3.4
 – JDK 1.8
 – Maven 3.3.9
You can convert this example to an Eclipse IDE project by going to folder where is the pom.xml is, and use the command :
mvn eclipse:eclipse
package javaspringexamples.spring.ioc.configuration.xml;
/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class User {
	private int id;
	private String fisrtName;
	private String lastName;
	private boolean Accountlocked;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getFisrtName() {
		return fisrtName;
	}
	public void setFisrtName(String fisrtName) {
		this.fisrtName = fisrtName;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	public boolean isAccountlocked() {
		return Accountlocked;
	}
	public void setAccountlocked(boolean accountlocked) {
		Accountlocked = accountlocked;
	}
}
package javaspringexamples.spring.ioc.configuration.xml;
/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public interface UserDao {
	User find(int userId);
	void insert(User user);
	void update(User user);
	void delete(int userId);
	void lockAccount(int userId, boolean locked);
}
package javaspringexamples.spring.ioc.configuration.xml;
import java.util.HashMap;
import java.util.Map;
/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class UserDaoInMemoryImpl implements UserDao {
	private Map<Integer, User> usersMap = new HashMap<>();
	{
		User user1 = new User();
		user1.setId(1);
		user1.setFisrtName("FirstName 1");
		user1.setLastName("LastName 1");
		user1.setAccountlocked(false);
		User user2 = new User();
		user2.setId(2);
		user2.setFisrtName("FirstName 2");
		user2.setLastName("LastName 2");
		user2.setAccountlocked(false);
		usersMap.put(user1.getId(), user1);
		usersMap.put(user2.getId(), user2);
	}
	@Override
	public void insert(User user) {
		usersMap.put(user.getId(), user);
	}
	@Override
	public void update(User user) {
		usersMap.put(user.getId(), user);
	}
	@Override
	public void delete(int userId) {
		usersMap.remove(userId);
	}
	@Override
	public User find(int userId) {
		return usersMap.get(userId);
	}
	@Override
	public void lockAccount(int userId, boolean locked) {
		User user = usersMap.get(userId);
		user.setAccountlocked(locked);
		update(user);
	}
}
package javaspringexamples.spring.ioc.configuration.xml;
/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public interface UserService {
	String getUserinformation(int userId);
	void lockAccountUser(int userId);
	void unlockAccountUser(int userId);
}
package javaspringexamples.spring.ioc.configuration.xml;
/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class UserServiceImpl implements UserService {
	private UserDao userDao;
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	@Override
	public void lockAccountUser(int userId) {
		userDao.lockAccount(userId, true);
	}
	@Override
	public void unlockAccountUser(int userId) {
		userDao.lockAccount(userId, false);
	}
	@Override
	public String getUserinformation(int userId) {
		User user = userDao.find(userId);
		return user.getFisrtName() + " - " + user.getLastName() + " - " + user.isAccountlocked();
	}
}
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userService" class="javaspringexamples.spring.ioc.configuration.xml.UserServiceImpl"> <property name="userDao" ref="userDao" /> </bean> <bean id="userDao" class="javaspringexamples.spring.ioc.configuration.xml.UserDaoInMemoryImpl"> </bean> </beans>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>javaspringexamples.spring</groupId>
	<artifactId>example-XML-Based-Configuration</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>example XML Based Configuration</name>
	<properties>
		<springframework.version>4.3.4.RELEASE</springframework.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${springframework.version}</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
package javaspringexamples.spring.ioc.configuration.xml;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class Main {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"/javaspringexamples/spring/ioc/configuration/xml/XmlConfiguration.xml");
		UserService userService = applicationContext.getBean("userService", UserService.class);
		System.out.println("User1 Informations: " + userService.getUserinformation(1));
		System.out.println("User2 Informations: " + userService.getUserinformation(2));
		System.out.println("Locking User1 account");
		userService.lockAccountUser(1);
		System.out.println("User1 Informations: " + userService.getUserinformation(1));
	}
}
Get the sources of the example from the following GitHub url
