我们结束了自动装配中的注解开发,接下来就是接触spring中的几个注解,注解开发是比较轻松的,它本身没有那种繁杂的xml的配置,但是事物往往是具有两面性的,因而仁者见仁智者见智。
新建一个项目,在其中依然需要建一个xml文件(虽然说不需要去注册各种bean),我们上一个注解装配中说到要在xml中放入一个
<context:annotation-config/>
今天要有一个新的标签内容
<context:component-scan base-package="com.li.pojo"/>
根据这个英文翻译应该是可以看出来,这个就是扫秒组件的包,也就说要让我们所拥有的那些个类让spring来接管,并且还是不通过布置bean的方式,就是这个了,你不配置bean那你总要告诉人家你的一些位置吧~~
所以我们将pojo下的所有class文件交给spring来交接。(顺道补充一下,进行spring 的注解配置是需要导入aop包的,但我们直接导入的spring-webmvc里都有)
@Component
public class User {
public String name="jj";
}
相信已经看到了这个注解,@Component,这个就是将下面的这个类当作spring的组件交给spring配置的方式,当然是前提你告诉spring你的位置了哦~,
然后就可以在测试文件中进行测试
public class Tt {
public static void main(String[] args) {
//脱离bean的xml文件装配的第一步,但是还是没有完全装配
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = context.getBean("user", User.class);
System.out.println(user.name);
}
}
结果当然是完美输出名字。
除此之外还有几个注解简要说明,@Repository,@Service,@Controller这几个其实和@Component的含义一样都是将类当作组件放入spring中,准确来说这么做是更方便符合dao/service/controller这样模式的开发。
最后是关于属性赋值的注解,其实这些都是和bean的配置相对应的,bean里面我们配置过id、class这里我们都直接注解了(spring这里的id默认的是管理的类的小写),还有scope和value吧。
scope注解就是@Scope("singleton")
这种类似的
public String name="jj";
@Value("jj")//这个注解就是与上面的直接赋值等价
public String name;
嗯,大体就这样~~