1.建立如图所示的目录结构
2.对应的代码如下所示
/****************************UserDao 接口************************************/
package com.unicom.dao;
public interface UserDao {
public void save();
}
/****************************UserDaoImpl 接口实现************************************/
package com.unicom.dao;
import org.springframework.stereotype.Repository;
@Repository("UserDaoImpl")
public class UserDaoImpl implements UserDao {
@Override
public void save() {
System.out.println("UserDap--实现1---");
}
}
/****************************UserDaoMysqlImpl 接口实现*******************/
package com.unicom.dao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;
//三层架构 持久层 业务层 控制层
@Repository("mysql")
public class UserDaoMysqlImpl implements UserDao {
@Value("gxq")
public String name;
@Override
public void save() {
System.out.println("mysql---save-----");
}
}
/****************************UserDaoOracleImpl 接口实现**************************/
package com.unicom.dao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;
@Repository("oracle")
public class UserDaoOracleImpl implements UserDao {
@Value("gxq")
public String name;
@Override
public void save() {
System.out.println("oracle---save---");
}
}
/****************************Dog 类************************************/
package com.unicom.domain;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class Dog {
@Value("wc")
public String name;
@Value("10")
public String color;
}
/****************************User 类************************************/
package com.unicom.domain;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/*如果没有写id名字,默认把类名第一个字母小写,当作是id*/
@Data
@Component() /*<bean id="user" class=" com.unicom.domain.User"/>*/
public class User {
@Value("gxq")
private String name;
@Value("10")
private String age;
@Autowired /*会根据类型自动注入*/
private Dog dog;
public void show(){
System.out.println("name = "+ name);
System.out.println("age = "+age);
System.out.println(dog.name);
System.out.println(dog.color);
}
}
/****************************UserServiceImpl 接口实*************************/
package com.unicom.service;
import com.unicom.dao.UserDao;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl {
/*如果有两个对象都是UserDao类型,
就不能直接使用@Autowired注入 就必须指定名称*/
/*@Autowired根据对象的类型进行注入*/
/*@Autowired
@Qualifier("Oracle")*/
private UserDao userDao;
public void save(){
userDao.save();
}
}
/****************************SpringTest 测试类*************************/
import com.unicom.dao.UserDao;
import com.unicom.dao.UserDaoImpl;
import com.unicom.domain.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
User user= (User)applicationContext.getBean("user");
user.show();
UserDao userDaoImpl= (UserDaoImpl)applicationContext.getBean("UserDaoImpl");
userDaoImpl.save();
}
}
/****************************applicationContext.xml文件*************************/
<?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.xsd">
<!--开启注解扫描-->
<!--开启注解扫描-->
<context:component-scan base-package="com.unicom"/>
</beans>
/*********************************pom.xml文件************************************/
<?xml version="1.0" encoding="UTF-8"?>
<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>com.unicom</groupId>
<artifactId>SpringProject2</artifactId>
<version>1.0-SNAPSHOT</version>
<!--properties和dependencies是添加的内容-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!--定义版本号 ${org.springframework.version}-->
<spring.version>5.1.7.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
</dependencies>
<!--以上的properties和dependencies是添加的内容-->
</project>
其中applicationContext.xml 中的一定要加上
<!--开启注解扫描-->
<!--开启注解扫描-->
<context:component-scan base-package="com.unicom"/>
其中pom.xml 中一定要加上
<!--properties和dependencies是添加的内容-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!--定义版本号 ${org.springframework.version}-->
<spring.version>5.1.7.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
</dependencies>
<!--以上的properties和dependencies是添加的内容-->