spring框架学习笔记3:使用注解代替配置文件
2018-06-18 03:12:52来源:未知 阅读 ()
1.导入context约束:spring-context-4.2.xsd
2.design模式打开xml配置文件,右键edit namespaces,点击add添加
完成后应该是这样:
配置文件中这样写即可:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/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.springframework.stereotype.Component; 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; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", car=" + car + "]"; } @PostConstruct//初始化方法,当相于配置文件中的init-mothod public void init(){ System.out.println("初始化"); } @PreDestroy//销毁方法 public void destory(){ System.out.println("销毁"); } }
Car类:
package bean; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @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; } @Override public 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; @Test public void fun1(){ System.out.println(u); } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- Java--反射(框架设计的灵魂) 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash