Spring的Bean管理(注解方式)

Spring的Bean管理(注解方式)

使用@Component 描述Spring框架中的Bean

  • 使用注解定义Bean

    @Component 描述Spring框架中的Bean
  • xml文件的头(约束)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
    
  • 开启注解扫描
      <context:component-scan base-package="com.imooc"/>
    
    
    
  • 在UserService类中,加上@Component("userService"),括号里面是bean的名字
    @Component("userService")
    public class UserServices {
        public String sayHello(String name) {
            return "Hello " + name;
        }
  • 在测试类中:
    public void demo1() {
        ApplicationContext applicationContext = new                 
                    ClassPathXmlApplicationContext("applicationContext.xml");
        UserServices userServices = (UserServices)     
                  applicationContext.getBean("userService");
        String s = userServices.sayHello("牛");
        System.out.println(s);
    }

测试类中与在xml中的配置方法是一致的

另外3个功能基本等效的注解

  • @Repository 用于对DAO实现类进行标注
  • @Service 用于对Service实现类进行标注
  • @Controller 用于对Controller实现类进行标注

    Spring的属性注入-注解方式

1.简单类型的@value("") 注意在类名下方
2.对象值得注入@Autowired 默认按照类型进行注入 注意在属性值前面,而且没有值

  • 如果存在两个相同Bean类型,则按照名称注入

  • @Autowired注入时可以针对成员变量或者set方法

    @Component("userService")
    public class UserServices {
       @Value("米饭")
       private String something;
       @Autowired
       private UserDao userDao;
       public String sayHello(String name) {
           return "Hello " + name;
       }
       public void eat() {
           System.out.println("eat :" + something);
       }
    
       public void save() {
           System.out.println("service 中保存用户的方法");
           userDao.save();
       }
    }

3.通过@Autowired的required属性,设置一定要找到匹配的Bean

  • 使用@Qualifier 指定注入Bean的名称
    两个标签一起使用,保证@Autowired注入的和注解Bean:UserDao设置的名称必须一致

    • 4.上述两行可以使用@Resource(name="Bean的名称"),一个标签搞定 **

      其他注解

      图片说明
  • 使用注解开发时候,默认作用范围都是singleton,可以使用@Scope注解用于指定Bean的作用范围

xml配置和注解配置混合使用

图片说明

全部评论

相关推荐

大方的大熊猫准备进厂:1.教育背景:你希望从事什么专业的工作你的主修课就是什么;成绩优秀是你应该做的,没什么可描述的,成绩不优秀也许人家在大学忙着创业呢?(成绩优秀不一定是好事,只能说明多元化的大学你上成了高中,没有真正上明白大学,反而体现了你死板,不爱社交,没有别的突出能力) 2.实践经历:你想表达的意思没有说清楚。你是说你会个性化服务,还是你有实习经历。如果没有带来,经济收益,表彰,更好的发展前景,那你还不如说说提升了自己哪些技能。你说有人给你送锦旗我都能明白你优秀,但是你说你会xxxx,你说这话谁信,证据呢。 3.入伍经历:你描述的就是你的工作职责或者你应该做的,并没有体现出来你把这个事情做好了,而且入伍经历并不能证明你能干好你要应聘的工作,不如只写经历其余所有内容都不写。 4.荣誉技能:重点突出一下,但不要过多描述,这些荣誉的含金量懂得都懂。 重点:你要应聘什么工作(具体岗位,实习生不具体),你的期望薪资
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务