1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > spring框架学习笔记3:使用注解代替配置文件

spring框架学习笔记3:使用注解代替配置文件

时间:2023-09-10 11:20:29

相关推荐

spring框架学习笔记3:使用注解代替配置文件

1.导入context约束:spring-context-4.2.xsd

2.design模式打开xml配置文件,右键edit namespaces,点击add添加

完成后应该是这样:

配置文件中这样写即可:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="/2001/XMLSchema-instance" xmlns="/schema/beans" xmlns:context="/schema/context" xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-4.2.xsd /schema/context /schema/context/spring-context-4.2.xsd "><context:component-scan base-package="bean"></context:component-scan></beans>

在类中这样使用注解:

package bean;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.annotation.Resource;import org.junit.validator.PublicClassValidator;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Scope;import org.ponent;import org.springframework.stereotype.Controller;import org.springframework.stereotype.Repository;import org.springframework.stereotype.Service;//代替的配置文件内容<bean name="user" class="bean.User"/>// @Component("user")//四种本质相同,为了方便理解建议使用以下三种// @Service("user")//service层使用// @Controller("user")//web层使用@Repository("user")//dao层使用//指定对象的作用范围@Scope(scopeName="singleton")public class User {@Value("Tom")//赋值private String name;private Integer age;//@Autowired//对象赋值,自动装配//存在问题:如果是多个类型一致的对象,无法分辨@Resource(name="car")//这种方式可以明确指定(推荐)private Car car;public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}@Value("20")//也可以在set方法赋值,效果一样,但不破坏封装性public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}@PostConstruct//初始化方法,当相于配置文件中的init-mothodpublic void init(){System.out.println("初始化");}@PreDestroy//销毁方法public void destory(){System.out.println("销毁");}}

Car类:

package bean;import org.springframework.beans.factory.annotation.Value;import org.ponent;@Component("car")public class Car {@Value("car2")private String name;private String color;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}@Overridepublic String toString() {return "Car [name=" + name + ", color=" + color + "]";}}

测试可以写成以前的测试类,如果安装了STS插件,就可以这样:

package annotation;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import bean.User;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class Demo {@Resource(name="user")private User u;@Testpublic void fun1(){System.out.println(u);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。