zoukankan      html  css  js  c++  java
  • Ioc注解

    注解:

    添加注解时,需要添加context的相关

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <beans xmlns="http://www.springframework.org/schema/beans" 
    3 xmlns:p="http://www.springframework.org/schema/p"
    4 xmlns:context="http://www.springframework.org/schema/context" 
    5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    6 xsi:schemaLocation="http://www.springframework.org/schema/beans 
    7 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
    8 http://www.springframework.org/schema/context 
    9 http://www.springframework.org/schema/context/spring-context.xsd ">

    必须添加这个注解扫描

    <!-- 注解扫描 -->
    <context:component-scan base-package="com.bdqn.*">
        
    </context:component-scan>

    如果xml中去掉setter注入和构造方法注入时,那么就会去找注解注入(注解注入的是调用无参构造方法)

    如果xml中设置setter注入时,那么久会去调用setter的方法

    如果xml中设置构造方法注入时,那么就会调用有参的构造方法

    如果@Autowired写在private上面的话

        @Autowired
        private UserDao dao;

    那么这样会先执行无参构造方法后,再执行setter方法

    注意:如果要调用setter方法,就最好写在setter方法的上面

    华丽的分隔符---------------------------------------------------------------------------------------------------------------------------------------------

     1 /**
     2  * 用户DAO实现类,实现UserDao接口,负责User类的持久化操作
     3  */
     4 @Repository("userDaoImpl")
     5 public class UserDaoImpl implements UserDao {
     6 
     7     public void save(User user) {
     8         // 这里并未实现完整的数据库操作,仅为说明问题
     9         System.out.println("保存用户信息到数据库");
    10     }
    11     
    12 }
     1 /**
     2  * 用户实体类
     3  */
     4 @Component("user") 
     5 public class User{
     6     private Integer id; // 用户ID
     7     private String userName; // 用户名
     8     private String password; // 密码
     9     private String email; // 电子邮件
    10 
    11     // getter & setter
    
     1 /**
     2  * 用户业务类,实现对User功能的业务管理
     3  */
     4 @Service("userServiceImpl")
     5 public class UserServiceImpl implements UserService {
     6         
     7     
     8         @Autowired
     9         private UserDao userDao;
    10 
    11         public UserDao getUserDao() {
    12             return userDao;
    13         }
    14 
    15         // userDao 属性的setter访问器,会被Spring调用,实现设值注入
    16         public void setUserDao(UserDao userDao) {
    17             this.userDao = userDao;
    18         }
    19 
    20         public void addNewUser(User user) {
    21             // 调用用户DAO的方法保存用户信息
    22             userDao.save(user);
    23         }
    24 
    25 }

    xml文件加个扫描就好

    <!-- 扫描包中注解标注的类 -->
        <context:component-scan base-package="cn.bdqn.biz" />
  • 相关阅读:
    进制详解:二进制、八进制和十六进制
    学编程难吗?多久能入门?
    英语和数学不好,能学编程吗?
    C语言是菜鸟和大神的分水岭
    C语言究竟是一门怎样的语言?
    通俗地理解什么是编程语言
    哪款C语言编译器(IDE)适合初学者?
    spring task
    spring静态工厂方法得到单例bean
    多个切面表达式
  • 原文地址:https://www.cnblogs.com/xuerong/p/4917477.html
Copyright © 2011-2022 走看看