Dependency Injection – Java and Spring Examples http://localhost/wordpress Wed, 26 Jun 2019 15:04:13 +0000 fr-FR hourly 1 https://wordpress.org/?v=5.0.4 Example Spring 4 – Lifecycle Callback Methods http://localhost/wordpress/2019/02/19/example-spring-4-dependency-injection-lifecycle-callback-methods/ Tue, 19 Feb 2019 16:55:16 +0000 http://localhost/wordpress/?p=497 This example presents the basic concept of using setter injection in Spring.

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.LifecycleCallbackMethods;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class A {
	@PostConstruct
	public void init() throws Exception {
		System.out.println("A @PostConstruct-init() method invoked");
	}

	@PreDestroy
	public void destroy() throws RuntimeException {
		System.out.println("A @PreDestroy-destroy() method invoked");
	}
}

package javaspringexamples.spring.ioc.LifecycleCallbackMethods;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class B implements InitializingBean, DisposableBean {

	@Override
	public void afterPropertiesSet() throws Exception {
		System.out.println("B InitializingBean-afterPropertiesSet() method invoked");
	}

	@Override
	public void destroy() throws Exception {
		System.out.println("B DisposableBean-destroy() method invoked");
	}

}

package javaspringexamples.spring.ioc.LifecycleCallbackMethods;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class C {
	public void init() throws Exception {
		System.out.println("C init-method=\"init\"-init() method invoked");
	}

	public void destroy() throws RuntimeException {
		System.out.println("C destroy-method=\"destroy\"-destroy() method invoked");
	}
}

package javaspringexamples.spring.ioc.LifecycleCallbackMethods;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class Main {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"classpath:/applicationContext.xml");
		applicationContext.registerShutdownHook();
	}

}

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<context:annotation-config />

	<bean
		class="javaspringexamples.spring.ioc.LifecycleCallbackMethods.A" />
	<bean
		class="javaspringexamples.spring.ioc.LifecycleCallbackMethods.B" />
	<bean id="c"
		class="javaspringexamples.spring.ioc.LifecycleCallbackMethods.C"
		init-method="init" destroy-method="destroy" />

</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>Lifecycle-Callback-Methods</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>example Lifecycle Callback Methods</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>

The output is :
A @PostConstruct-init() method invoked
B InitializingBean-afterPropertiesSet() method invoked
C init-method= »init »-init() method invoked
C destroy-method= »destroy »-destroy() method invoked
B DisposableBean-destroy() method invoked
A @PreDestroy-destroy() method invoked

Get the sources of the example from the following GitHub url

Or Download a .zip file

]]>
Example Spring 4 – Dependency Injection – Setter Injection http://localhost/wordpress/2019/02/19/example-spring-4-dependency-injection-setter-injection/ Tue, 19 Feb 2019 14:25:58 +0000 http://localhost/wordpress/?p=495 This example presents the basic concept of using setter injection in Spring.

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.setterInjection.xml;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class A {
	private B b;
	private C c;

	public B getB() {
		return b;
	}

	public void setB(B b) {
		this.b = b;
	}

	public C getC() {
		return c;
	}

	public void setC(C c) {
		this.c = c;
	}

	@Override
	public String toString() {
		return b.toString() + " - " + c.toString();
	}
}
package javaspringexamples.spring.ioc.setterInjection.xml;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class B {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return name;
	}

}
package javaspringexamples.spring.ioc.setterInjection.xml;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class C {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return name;
	}
}
package javaspringexamples.spring.ioc.setterInjection.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/setterInjection/xml/xmlConfiguration.xml");

		// Getting and printing objectA
		A objectA = (A) applicationContext.getBean("objectA");
		System.out.println(objectA);

	}

}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

	<util:map id="objectName">
		<entry key="A" value="Object A" />
		<entry key="B" value="Object B" />
		<entry key="C" value="Object C" />
	</util:map>

	<bean id="objectA"
		class="javaspringexamples.spring.ioc.setterInjection.xml.A">
		<property name="b" ref="objectB" />
		<property name="c" ref="objectC" />
	</bean>

	<bean id="objectB"
		class="javaspringexamples.spring.ioc.setterInjection.xml.B">
		<property name="name" value="#{objectName[B]}" />
	</bean>

	<bean id="objectC"
		class="javaspringexamples.spring.ioc.setterInjection.xml.C">
		<property name="name" value="#{objectName[C]}" />
	</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-Setter-Injection</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
 
    <name>example XML Based Setter Injection</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>

The output is :
Object B – Object C

Get the sources of the example from the following GitHub url

Or Download a .zip file

]]>
Example Spring 4 – Dependency Injection – Constructor Injection http://localhost/wordpress/2019/02/18/example-spring-4-dependency-injection-constructor-injection/ Mon, 18 Feb 2019 16:42:36 +0000 http://localhost/wordpress/?p=490 This example presents the basic concept of using constructor injection in Spring.

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.constructorInjection.xml;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class A {
	private B b;
	private C c;
	
	public A(B b, C c) {
		this.b = b;
		this.c = c;
	}

	public A(C c, B b) {
		this.b = b;
		this.c = c;
	}

	@Override
	public String toString() {
		return b.toString() + "-" + c.toString();
	}

}
package javaspringexamples.spring.ioc.constructorInjection.xml;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class B {
	private String name;

	public B(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return name;
	}

}
package javaspringexamples.spring.ioc.constructorInjection.xml;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class C {
	private String name;

	public C(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return name;
	}
}
package javaspringexamples.spring.ioc.constructorInjection.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/constructorInjection/xml/xmlConfiguration.xml");

		// Getting and printing objectA_BC
		A objectA = (A) applicationContext.getBean("objectA_BC");
		System.out.println(objectA);

		// Getting and printing objectA_BC
		objectA = (A) applicationContext.getBean("objectA_CB");
		System.out.println(objectA);

	}

}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

	<util:map id="objectName">
		<entry key="A" value="Object A" />
		<entry key="B" value="Object B" />
		<entry key="C" value="Object C" />
	</util:map>

	<bean id="objectA_BC"
		class="javaspringexamples.spring.ioc.constructorInjection.xml.A">
		<constructor-arg ref="objectB" />
		<constructor-arg ref="objectC" />
	</bean>

	<bean id="objectA_CB"
		class="javaspringexamples.spring.ioc.constructorInjection.xml.A">
		<constructor-arg index="1" ref="objectC" />
		<constructor-arg index="0" ref="objectB" />
	</bean>

	<bean id="objectB"
		class="javaspringexamples.spring.ioc.constructorInjection.xml.B">
		<constructor-arg value="#{objectName[B]}" />
	</bean>

	<bean id="objectC"
		class="javaspringexamples.spring.ioc.constructorInjection.xml.C">
		<constructor-arg value="#{objectName[C]}" />
	</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-Constructor-Injection</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
 
    <name>example XML Based Constructor Injection</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>

The output is :
Object B-Object C
Object B-Object C

Get the sources of the example from the following GitHub url

Or Download a .zip file

]]>
Example Spring 4 – Annotation Based Autowiring http://localhost/wordpress/2018/12/07/example-spring-4-annotation-based-autowiring/ Fri, 07 Dec 2018 15:33:52 +0000 http://codercocoon.com/?p=419 This example presents the basic concept of using in Spring the Annotation based Autowiring.

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.autowiring.annotation;

/**
 * 
 * @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.autowiring.annotation;

/**
 * 
 * @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.autowiring.annotation;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */

@Repository
@Qualifier("userDao")
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.autowiring.annotation;

import org.springframework.stereotype.Repository;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */

@Repository
public class UserDaoJdbcImpl implements UserDao {

	@Override
	public void insert(User user) {
		
	}

	@Override
	public void update(User user) {
		
	}

	@Override
	public void delete(int userId) {
		
	}

	@Override
	public User find(int userId) {
		return null;
	}

	@Override
	public void lockAccount(int userId, boolean locked) {
		
	}
}

package javaspringexamples.spring.ioc.autowiring.annotation;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public interface UserService {

	String getUserinformation(int userId);

	void lockAccountUser(int userId);

	void unlockAccountUser(int userId);
}

package javaspringexamples.spring.ioc.autowiring.annotation;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */

@Service
public class UserServiceImpl implements UserService {
	private UserDao userDao;

	@Autowired
	@Qualifier("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" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<context:component-scan base-package="javaspringexamples.spring.ioc.autowiring.annotation" />

</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-Annotation-Based-Autowiring</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>example Annotation Based Autowiring</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.autowiring.annotation;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"javaspringexamples/spring/ioc/autowiring/annotation/annotationConfiguration.xml");
		UserService userService = applicationContext.getBean(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

Or Download a .zip file

]]>
Example Spring 4 – Java Based Autowiring http://localhost/wordpress/2018/12/07/example-spring-4-java-based-autowiring/ Fri, 07 Dec 2018 15:24:33 +0000 http://codercocoon.com/?p=417 This example presents the basic concept of using in Spring the Java based Autowiring.

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.autowiring.java;

/**
 * 
 * @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.autowiring.java;

/**
 * 
 * @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.autowiring.java;

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.autowiring.java;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class UserDaoJdbcImpl implements UserDao {

	@Override
	public void insert(User user) {
		
	}

	@Override
	public void update(User user) {
		
	}

	@Override
	public void delete(int userId) {
		
	}

	@Override
	public User find(int userId) {
		return null;
	}

	@Override
	public void lockAccount(int userId, boolean locked) {
		
	}
}

package javaspringexamples.spring.ioc.autowiring.java;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public interface UserService {

	String getUserinformation(int userId);

	void lockAccountUser(int userId);

	void unlockAccountUser(int userId);
}

package javaspringexamples.spring.ioc.autowiring.java;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class UserServiceImpl implements UserService {
	private UserDao userDao;

	@Autowired
	@Qualifier
	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();
	}
}
package javaspringexamples.spring.ioc.autowiring.java;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
@Configuration
public class JavaConfiguration {

	@Bean
	public UserService userService() {
		UserServiceImpl bean = new UserServiceImpl();
		return bean;
	}

	@Bean
	@Qualifier
	public UserDao userDao() {
		UserDaoInMemoryImpl bean = new UserDaoInMemoryImpl();
		return bean;
	}
	
	@Bean
	public UserDao userJdbcDao() {
		UserDaoJdbcImpl bean = new UserDaoJdbcImpl();
		return bean;
	}
}

<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-Java-Based-Autowiring</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>example Java Based Autowiring</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.autowiring.java;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class Main {

	public static void main(String[] args) {
		AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(
				JavaConfiguration.class);
		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

Or Download a .zip file

]]>
Example Spring 4 – Xml Based Autowiring http://localhost/wordpress/2018/12/07/example-spring-4-xml-based-autowiring/ Fri, 07 Dec 2018 15:05:28 +0000 http://codercocoon.com/?p=412 This example presents the basic concept of using in Spring the Xml based Autowiring.

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.autowiring.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.autowiring.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.autowiring.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.autowiring.xml;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class UserDaoJdbcImpl implements UserDao {

	@Override
	public void insert(User user) {
		
	}

	@Override
	public void update(User user) {
		
	}

	@Override
	public void delete(int userId) {
		
	}

	@Override
	public User find(int userId) {
		return null;
	}

	@Override
	public void lockAccount(int userId, boolean locked) {
		
	}
}

package javaspringexamples.spring.ioc.autowiring.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.autowiring.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.autowiring.xml.UserServiceImpl"
		autowire="byName" />

	<bean id="userDao"
		class="javaspringexamples.spring.ioc.autowiring.xml.UserDaoInMemoryImpl" />

	<bean id="userDaoJdbc"
		class="javaspringexamples.spring.ioc.autowiring.xml.UserDaoJdbcImpl" />

</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-autowiring</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>example XML Based Autowiring</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.autowiring.xml;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"javaspringexamples/spring/ioc/autowiring/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

Or Download a .zip file

]]>
Example Spring 4 – Annotation Based Configuration http://localhost/wordpress/2018/11/29/example-spring-4-annotation-based-configuration/ Thu, 29 Nov 2018 16:41:52 +0000 http://codercocoon.com/?p=409 This example presents the basic concept of using in Spring the Annotation 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.annotation;

/**
 * 
 * @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.annotation;

/**
 * 
 * @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.annotation;

import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Repository;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */

@Repository
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.annotation;

/**
 * 
 * @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.annotation;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */

@Service
public class UserServiceImpl implements UserService {
	private UserDao userDao;

	@Autowired
	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"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<context:component-scan base-package="javaspringexamples.spring.ioc.configuration.annotation"/>

</beans>
package javaspringexamples.spring.ioc.configuration.annotation;

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/annotation/configuration.xml");
		UserService userService = applicationContext.getBean(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

Or Download a .zip file

]]>
Example Spring 4 – Java Based Configuration http://localhost/wordpress/2018/11/26/example-spring-4-java-based-configuration/ Mon, 26 Nov 2018 09:00:42 +0000 http://codercocoon.com/?p=399 This example presents the basic concept of using in Spring the Java 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.java;

/**
 * 
 * @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.java;

/**
 * 
 * @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.java;

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.java;

/**
 * 
 * @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.java;

/**
 * 
 * @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();
	}
}
package javaspringexamples.spring.ioc.configuration.java;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
@Configuration
public class JavaConfiguration {

	@Bean
	public UserService userService() {
		UserServiceImpl bean = new UserServiceImpl();
		bean.setUserDao(userDao());
		return bean;
	}

	@Bean
	public UserDao userDao() {
		UserDaoInMemoryImpl bean = new UserDaoInMemoryImpl();
		return bean;
	}
}

<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-Java-Based-Configuration</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>example Java 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.java;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * 
 * @author mounir.sahrani@gmail.com
 *
 */
public class Main {

	public static void main(String[] args) {
		AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(JavaConfiguration.class);
		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

Or Download a .zip file

]]>
Example Spring 4 – XML Based Configuration http://localhost/wordpress/2018/11/23/example-spring-4-xml-based-configuration/ Fri, 23 Nov 2018 15:14:49 +0000 http://codercocoon.com/?p=386 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

Or Download a .zip file

]]>