之前spring是用xml配置,现在可以零xml使用,完全代码的方式来使用的spring的功能。实际上,注解并不重要,xml配置也不重要,重要的是使用spring的ioc和aop提供的功能。现在提供了注解的方式来使用spring的核心功能,那简直不要太舒服了。
1.先建项目导入spring相关依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
2.创建相应的包
conf是spring的配置类,其他的就是dao和service。
3.相关代码
conf包下
package com.kibear.spring.conf;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.kibear.spring")
public class BeanConf {
}
dao包下
package com.kibear.spring.dao;
import org.springframework.stereotype.Repository;
@Repository
public class HelloDao {
public String say(String name) {
return "hello " + name;
}
}
service包下
package com.kibear.spring.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.kibear.spring.dao.HelloDao;
@Service
public class HelloService {
@Autowired
private HelloDao helloDao;
public HelloService() {
System.out.println("HelloService()");
}
public String sayHello(String name) {
return helloDao.say(name);
}
}
启动类
package com.kibear.spring;
import java.util.Arrays;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.kibear.spring.conf.BeanConf;
import com.kibear.spring.service.HelloService;
public class App {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeanConf.class);
System.out.println(Arrays.asList(context.getBeanDefinitionNames()));
System.out.println(context.getBean("helloService"));
HelloService helloService = context.getBean(HelloService.class);
System.out.println(helloService.sayHello("kibear"));
context.close();
}
}