spring的地位

spring

Spring 框架带来的的好处:
非侵入性的,保持内部代码的完整。
组件间的依赖关系减少,极大改善了代码的可重用性。
极大地简化了软件开发复杂性,方便解耦,简化开发。
对JDBC进行了轻量级的封装,可以更加灵活的去操作数据库,提供了文件上传、定时器等常用工具类,并且,方便集成各种优秀框架,Spring 现在能与所有主流开发框架集成,可谓是一个万能框架,Spring 让 JAVA 开发变得更多简单,它的地位是很高的。

spring的主要核心是

(1)IOC(控制反转)
在之前的java开发模式中,当需要一个对象时,我们会手动new或者调用。而spring容器为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为我们提供的对象就行。

package sping.pig.dao;

import sping.pig.dao.model.User;

public interface UserDao {

    User userPwd(String username ,String pwd);
}

public class UserDaoImpl implements UserDao {

    @Override
    public User userPwd(String username, String pwd) {

        return new User(username);
    }

    public void setNames(List<String> names) {
        this.names = names;
    }
}
package sping.pig.service;

public interface UserService {
    String login(String username,String pwd);

}
package sping.pig.service.impl;

import sping.pig.dao.UserDao;
import sping.pig.dao.model.User;
import sping.pig.service.UserService;

public class UserServiceImpl implements UserService {
    private UserDao userDao;
    @Override
    public String login(String username, String pwd) {
        User user=userDao.userPwd(username,pwd);
        return user!=null?"yes":"nonono";
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
}
package sping.pig.web;

import sping.pig.service.UserService;

public class UserController {
    private UserService userService;

    public String log(String username, String pwd) {
        String emg = userService.login(username, pwd);
          return emg;
    }

    public void setUserService(UserService userService) {
        this.userService = userService;
    }
}

以上代码中属性是没有被初始化的,默认为null,此时我们就配置beans.xml,指定bean的类路径及互相之间的依赖

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="UserDao" class="sping.pig.dao.DaoImpl.UserDaoImpl"/>
       
    <bean id="UserService" class="sping.pig.service.impl.UserServiceImpl">
        <property name="userDao" ref="UserDao"></property>
    </bean>
     <bean id="UserController" class="sping.pig.web.UserController">
        <property name="userService" ref="UserService"></property>
    </bean>
</beans>

然后就可以通过ioc容器进行操作。

 ApplicationContext act=new ClassPathXmlApplicationContext("springLillPig.xml");
        System.out.println(act);
        UserController userController=act.getBean("userController",UserController.class);
        String message=userController.log("abc","123");
        System.out.println(message);
    }

(2)DI(依赖注入)
spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件。
(3)AOP(面向切面编程)
面向切面编程(AOP):在面向对象编程(OOP)思想中,我们将事物纵向抽象成一个个的对象。而在面向切面编程中,我们将一个个对象某些类似的方面横向抽象成一个切面,对这个切面进行一些如权限验证,事物管理,日志等操作处理的过程就是面向切面编程的思想。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值