关键代码:
java:
// bean @Component public class User{} // 表现层 @Controller public class UserController {} // 业务层 @Service public class UserService {} // 持久化层(可以重写名称) @Repository("userRepository"){}
bean.xml:
<!-- 指定Spring IOC 容器扫描的包 base-package="com.shuoeasy.test": 引用的包路径 --> <context:component-scan base-package="com.shuoeasy.test"> </context:component-scan>
详细:
User.java
package com.shuoeasy.test.component; import org.springframework.stereotype.Component; @Component public class User { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; } }
UserController.java:
package com.shuoeasy.test.controller; import org.springframework.stereotype.Controller; // 表现层 @Controller public class UserController { public void execute(){ System.out.println("UserController execute"); } }
UserService.java:
package com.shuoeasy.test.service; import org.springframework.stereotype.Service; // 业务层 @Service public class UserService { public void add(){ System.out.println("UserService add"); } }
UserRepositoryImpl.java:
package com.shuoeasy.test.repository.impl; import org.springframework.stereotype.Repository; import com.shuoeasy.test.repository.UserRepository; // 持久化层(可以重写名称) @Repository("userRepository") public class UserRepositoryImpl implements UserRepository{ public void save() { System.out.println("UserRepositoryImpl save"); } }
bean.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:p="http://www.springframework.org/schema/p" 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.2.xsd"> <!-- 指定Spring IOC 容器扫描的包 base-package="com.shuoeasy.test": 引用的包路径 resource-pattern="abc/*.class":过滤,只要com.shuoeasy.test下abc包里面的文件 <context:exclude-filter type="annotation" expression=""/> 子节点指定排除指定表达式组件 <context:include-filter type="annotation" expression=""/> 子节点指定包含表达式的组件,改节点需要与use-default-filters="false"配合使用 use-default-filters="false" 默认true --> <context:component-scan base-package="com.shuoeasy.test" use-default-filters="true" > <!-- <context:exclude-filter type="annotation" expression="com.shuoeasy.test.service"/> --> <!-- <context:include-filter type="annotation" expression="com.shuoeasy.test.service"/> --> <!-- <context:exclude-filter type="assignable" expression="om.shuoeasy.test.service"/> --> </context:component-scan> </beans>
Main.java:
package com.shuoeasy.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.shuoeasy.test.component.User; import com.shuoeasy.test.controller.UserController; import com.shuoeasy.test.repository.UserRepository; import com.shuoeasy.test.service.UserService; public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); // bean User user = (User) ctx.getBean("user"); System.out.println("user->" + user); // 表现层 UserController userContoller = (UserController)ctx.getBean("userController"); userContoller.execute(); // 业务层 UserService userService = (UserService) ctx.getBean("userService"); userService.add(); // 持久层 UserRepository userRepository = (UserRepository)ctx.getBean("userRepository"); userRepository.save(); } }
输出:
user->User [id=0, name=null]
UserController execute
UserService add
UserRepositoryImpl save