Spring 4.2 之 详解(二)
程序员文章站
2022-03-10 22:43:14
...
Spring 注解准备
导入jar包
代码结构目录
bean.xm文件配置
引入新的约束,开启注解自动扫描包,到类,属性,方法
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引用schema约束 -->
<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.debug.spring.*"/>
</beans>
注解创建对象(四个注解)
注解作用:为了让标注类本身的用途清晰,目前这四个注解功能都一样,都是创建对象
注解注入对象常见注解
@Component -----
@Controller ----- WEB层(常用)
@Service ----- 业务层(常用)
@Repository ----- 持久层
代码案例:
注解创建对象实例
@Scope(value="prototype")
@Scope(value="singleon")
注意:value值是可以省略的
Demo代码案例
1、在创建UserSerive.java类的上面使用注解实现
UserService.jave代码
/**
* 1、使用注解创建对象。
* @Component
* @Controller
* @Service
* 2、@Scope注解
* singleton
* propotype(使用场景是在多个Action)
*
* @author Debug date:2018-3-10上午10:21:45
*/
@Component(value="user_01")
public class User_01 {
public void add(){
System.out.println("创建新的同事......");
}
}
测试Demo
public class TestUser_01 {
@Test
public void test() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"config.xml");
User_01 user = (User_01) context.getBean("user_01");
User_01 user01 = (User_01) context.getBean("user_01");
System.out.println("user:" + user);
System.out.println("user01:" + user01);
user.add();
}
}
测试结果
注解注入属性
注入属性注解种类
@Autowired 自动注入(自动装配)
概念:根据类名去找到你相关的对象,没有指定是哪个对象
@Resource(name="userDao")
概念:name属性值写注解创建Dao对象时value的值;常用,可以准确指出你要注入的那个对象
创建userService.java 和 UserDao.java类 ,在service中得到userDao对象
Demo案例
@Service("userService")
public class UserService {
/**
* 注入userDao到UserService中
* 1、定义将注入的对象
* 2、在userDao属性上使用注解 完成对象注入
*
* 注意:使用注解方式不需要set方法
*/
// @Autowired
// private UserDao userDao;
//name属性值写注解创建Dao对象时value的值;常用,可以准确指出你要注入的那个对象
@Resource(name="userDao")
private UserDao userDao;
public void add() {
System.out.println("注解注入属性userService.......");
userDao.add();
}
}
/**
* 注意:使不使用value都可以
* @author Debug date:2018-3-10上午11:29:17
*/
@Component("userDao")
public class UserDao {
public void add() {
System.out.println("注解注入属性userDao.......");
}
}
public class TestDemo2 {
@Test
public void test() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"config.xml");
UserService user = (UserService) context.getBean("userService");
user.add();
}
}
结果:
上一篇: 详解文本格式(Text)[第二天]
下一篇: 使用Python做出进度条的效果
推荐阅读