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
