Spring框架之入坑

Spring介绍

  • The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
  • A key element of Spring is infrastructural support at the application level: Spring focuses on the “plumbing” of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.
  • 前面这么大一坨浓缩下来就是,spring提供基础设施支持,不用与特定的部署环境绑定。
  • spring核心技术主要是IOC、AOP

IOC

inverse of control 即控制反转,就是将你设计好的类交给系统控制,不由你自己在内部控制。
DI(依赖注入)是实现IOC的一种方式在这里插入图片描述
上图可以帮助我们理解,左图是自己控制类的调度,右图是spring容器控制调度,你需要什么他就给你什么,如果没有就抛异常。两则最直观的区别就是,前者自己控制对象,后者由spring容器控制对象,这就是控制反转。

代码举例

public class LoginController {
    //这个属性没有被实例化
    private LoginService loginService;
    public String login(String username, String password){
       String result= loginService.login(username,password);
        return result;
    }

    public void setLoginService(LoginService loginService) {
        this.loginService = loginService;
    }
}
public interface LoginService {
        public String login(String username,String password);
}
public class LoginServiceImpl implements LoginService {

    private UserDAO userDAO;
    @Override
    public String login(String username, String password) {

        User user=userDAO.findByuser(username,password);

        return user!=null?"成功":"失败";
    }

    public void setUserDAO(UserDAO userDAO) {
        this.userDAO = userDAO;
    }
}
public interface UserDAO {

     public User findByuser(String username,String password);
}
public class UserDAOImpl implements UserDAO {


    @Override
    public User findByuser(String username, String password) {
        System.out.println(username+password);
        return new User(username,password);
    }
}

在idea中maven创建的项目的resources下的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"
               xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="UserDAO" class="com.ldl.etc.DAO.Impl.UserDAOImpl"></bean>
<bean id="LoginService" class="com.ldl.etc.service.impl.LoginServiceImpl">
    <property name="userDAO" ref="UserDAO"></property>
</bean>
<bean id="LoginController" class="com.ldl.etc.controller.LoginController">
    <property name="LoginService" ref="LoginService"></property>
</bean>

</beans>
 What is this book about? The results of using J2EE in practice are often disappointing: applications are often slow, unduly complex, and take too long to develop. Rod Johnson believes that the problem lies not in J2EE itself, but in that it is often used badly. Many J2EE publications advocate approaches that, while fine in theory, often fail in reality, or deliver no real business value. "Expert One-on-One: J2EE Design and Development" aims to demystify J2EE development. Using a practical focus, it shows how to use J2EE technologies to reduce, rather than increase, complexity. Rod draws on his experience of designing successful high-volume J2EE applications and salvaging failing projects, as well as intimate knowledge of the J2EE specifications, to offer a real-world, how-to guide on how you too can make J2EE work in practice. It will help you to solve common problems with J2EE and avoid the expensive mistakes often made in J2EE projects. It will guide you through the complexity of the J2EE services and APIs to enable you to build the simplest possible solution, on time and on budget. Rod takes a practical, pragmatic approach, questioning J2EE orthodoxy where it has failed to deliver results in practice and instead suggesting effective, proven approaches. What does this book cover? In this book, you will learn When to use a distributed architecture When and how to use EJB How to develop an efficient data access strategy How to design a clean and maintainable web interface How to design J2EE applications for performance Who is this book for? This book would be of value to most enterprise developers. Although some of the discussion (for example, on performance and scalability) would be most relevant to architects and lead developers, the practical focus would make it useful to anyone with some familiarity with J2EE. Because of the complete design-deployment coverage, a less advanced developer could work through the book along with a more introductory text, and successfully build and understand the sample application. This comprehensive coverage would also be useful to developers in smaller organisations, who might be called upon to fill several normally distinct roles. What is special about this book? Wondering what differentiates this book from others like it in the market? Take a look: It does not just discuss technology, but stress its practical application. The book is driven from the need to solve common tasks, rather than by the elements of J2EE. It discuss risks in J2EE development It takes the reader through the entire design, development and build process of a non-trivial application. This wouldn't be compressed into one or two chapters, like the Java Pet Store, but would be a realistic example comparable to the complexity of applications readers would need to build. At each point in the design, alternative choices would be discussed. This would be important both where there's a real problem with the obvious alternative, and where the obvious alternatives are perhaps equally valid. It emphasizes the use of OO design and design patterns in J2EE, without becoming a theoretical book ,高清文档 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值