• SpringIoC


    IOC :控制反转,将对象的创建权交给了Spring.
    用代码来简单的实现以下:
    这里写图片描述

    这里写图片描述
    把UserDao userDao = new UserDaoImpl();的创建权利交给Spring,

    再把UserService的创建权交个Spring
    引用ref=’自己取的别名id’
    name 为属性名

    创建一个User类:
    public class User {
    private int age;
    private String name;
    public void setAge(int age) {
    this.age = age;
    }
    public void setName(String name) {
    this.name = name;
    }
    @Override
    public String toString() {
    return “User [age=” + age + “, name=” + name + “]”;
    }
    }
    创建接口:
    public interface UserDao {
    public void save(User user);
    }
    创建接口实现类:
    public class UserDaoImpl implements UserDao {

    @Override
    public void save(User user) {
            System.out.println(user);
    }
    

    }
    创建Service:
    public interface UserService {
    public void save(User user);
    }
    创建Service实现类:
    public class UserServiceImpl implements UserService{
    /DI :Dependency Injection 依赖注入.需要有IOC的环境,Spring创建这个类的过程中,Spring将类的依赖的属性设置进去./
    private UserDaoImpl userDao; //提供set方法创建权交给Spring
    public void setUserDao(UserDaoImpl userDao) {
    this.userDao = userDao;
    }
    @Override
    public void save(User user) {
    userDao.save(user);
    }
    }
    创建测试类:
    @Test
    public void run1(){
    ApplicationContext context = new ClassPathXmlApplicationContext(“ApplicationContext6.xml”);
    UserService userService = (UserService)context.getBean(“userService”);
    User user = (User)context.getBean(“user”);
    userService.save(user);
    }
    如果整合Junit4进行测试:
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(“classpath:ApplicationContext6.xml”)
    public class UserTest {
    @Resource(name=”userService”)
    private UserService userService;
    @Resource(name=”user”)
    private User user;
    @Test
    public void run1(){
    userService.save(user);
    }
    测试输出即可。
    SpringIoC注入的两种方式
    1.set注入
    Set注入提供构造方法即可(不可不写)
    2.构造注入
    提供构造方法即可(不可不写)


    IoC的注解

    还是用上面的4个类不过Spring的配置文件要进行修改引入context约束
    这里写图片描述

    进行注解扫描
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    Spring中提供@Component的三个衍生注解:(功能目前来讲是一致的)
    * @Controller :WEB层
    * @Service :业务层
    * @Repository :持久层

    这三个注解是为了让标注类本身的用途清晰,Spring在后续版本会对其增强
    @Value :用于注入普通类型.
    @Autowired :自动装配:
    * 默认按类型进行装配.
    * 按名称注入:
    * @Qualifier:强制使用名称注入.
    @Resource相当于:
    * @Autowired和@Qualifier一起使用.

    Bean的作用范围的注解:
    @Scope:
    * singleton:单例
    * prototype:多例

    Bean的生命周期的配置:
    @PostConstruct :相当于init-method
    @PreDestroy :相当于destroy-method
    这里写图片描述

    XML和注解:
    * XML :结构清晰.
    * 注解 :开发方便.(属性注入.)

    实际开发中还有一种XML和注解整合开发:
    * Bean有XML配置.但是使用的属性使用注解注入.

  • 相关阅读:
    DataGridView 中的复选框DataGridViewCheckBoxColumn 添加验证
    DataGridView删除行 提示 索引-1没有值 索引0没有值 等 解决办法
    convert mov mp4 to jpg
    拼图
    remove ad of chrome how to block ad of newssysstem.net
    redis3常用命令
    python_爬虫总结
    boot_自定义异常
    简答题总结
    springmvc_文件上传
  • 原文地址:https://www.cnblogs.com/liclBlog/p/15349593.html
Copyright © 2020-2023  润新知