只能标记在类上,不能放在接口上
检测方法
添加下面依赖 注意注释掉之前的相关依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.18</version>
</dependency>
方法一 用传统的spring.xml文件
@Test
public void test95(){
ClassPathXmlApplicationContext con = new ClassPathXmlApplicationContext("spring.xml");
String[] names1 = con.getBeanDefinitionNames();
System.out.println(con.getBeanDefinitionCount());
Arrays.stream(names1).forEach(System.out::println);
}
方法二 在类似与boot版的main方法看
代码目录结构
测试核心代码
运行这串代码 就会显示已有的bean 以及个数
@ComponentScan(basePackages = {"cn.edu"})
public class BootApplication {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BootApplication.class);
int beanDefinitionCount = context.getBeanDefinitionCount();
String[] names = context.getBeanDefinitionNames();
System.out.println("---------------->");
Arrays.stream(names).forEach(System.out::println);
System.out.println(beanDefinitionCount);
System.out.println("<----------------");
}
}
这样写spring不能创建
@Repository("userDao")
public interface UserDao {
public int addUser(User user);
public int updateUser(User user);
}
只能这样写 ()不写默认创建的bean的名字是userDaoImpl
@Repository("userDao")
public class UserDaoImpl implements UserDao {}
注解说明
@Component 用在无法归属的类上 注册bean
@Repository 一般用在daoimpl上
@Service 一般用在serviceimpl上
@Controller 一般用在controller上
@Resource 默认按照名称来查找 Bean
@Autowired 是 Spring 框架中的注解,可以用来标注字段、构造器、方法等,来告诉 Spring 容器需要自动注入的对象。它可以通过类型和名称来查找匹配的 Bean。