一、Java配置
Java配置:本质上就是,使用一个Java类去代替xml配置,这种配置方式在SpringBoot中得到了广泛的使用
1.创建Java项目,引入相关jar包:需要新增aop和aspects两个jar包
2.创建实体类:
public class User {
public void fly() {
System.out.println("阁下何不同风起,扶摇直上九万里");
}
}
3.Java配置文件
@Configuration //让当前类和applicationContext.xml作用等价
public class JavaConfig {
/**
* 初始化容器,并创建出User对象
* @return
*/
@Bean //作用和<bean>的作用是一样的,id和name默认是和方法名相同的
public User getUser(){
return new User();
}
}
4.Test测试类
public class User {
public void fly() {
System.out.println("阁下何不同风起,扶摇直上九万里");
}
}
二、自动配置
同样需要新增aop和aspects两个jar包
xml或者Java类的配置方式,对于所有要使用的类都需要一个一个的配置。可以通过自动配置来简化Bean的配置。
(一)XML文件配置
xml配置通过4个注解来实现,目前来说功能是一样的
注解 | 描述 |
---|---|
@Component | 一般用在身份不明确的组件上 |
@Service | 一般用在Service层 |
@Controller | 一般用在控制层 |
@Repository | 一般用在数据库访问层 |
(二)JavaBean类实现xml自动配置
1.需要在applicationContext.xml文件中开启注解扫描:NameSpaces:xmlns:context
<?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.3.xsd">
<!-- 开启扫描 -->
<context:component-scan base-package="com.sxt.*"></context:component-scan>
</beans>
2.Java对象中添加对应的注解
@Component //该注解的作用相当于在application.xml文件中配置了bean标签
public class User {
public void fly(){
System.out.println("阁下何不同风起,扶摇直上九万里");
}
}
3.测试类
public class Test {
@org.junit.Test
public void test() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = ac.getBean(User.class);
user.fly();
}
}
运行结果:
(三)传统MVC层实现xml自动配置
1.创建Java项目,引入相关jar包:同样需要aop和aspects两个jar包
2.创建dao层接口和实现类
public interface IUserDao {
public String say(String msg);
}
//@Component
@Repository //
public class UserDaoImpl implements IUserDao {
public String say(String msg) {
System.out.println("--->"+msg);
return "我来自dao层";
}
}
3.创建service层接口和实现类
public interface IUserService {
public void say(String msg);
}
//@Component
@Service
public class UserServiceImpl implements IUserService {
// @Resource //默认根据name注入对象;jdk提供的注解;除此之外和@Autowired一致
@Autowired //只能根据类型注入对象;Spring框架提供的注解;需要根据name注入对象需要和@Qualifier一块使用
private IUserDao dao;
public void setDao(IUserDao dao) {
this.dao = dao;
}
@Override
public void say(String msg) {
System.out.println(this.dao.say(msg));
}
}
4.创建Controller类
//@Component
@Controller
public class UserController {
// @Resource
@Autowired 自动注入
private IUserService service;
public void say() {
service.say("一颗稗子提心吊胆的春天");
}
}
5.测试类
public class Test {
@org.junit.Test
public void test() {
ApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
UserController controller = ac.getBean(UserController.class);
controller.say();
}
}
运行结果: