998. 什么是容器,我们学习了哪些容器,Spring与我们之前学习的容器有哪些异同
容器:一个Java所编写的程序,原先必须自行编写程序以管理对象关系,容器都会自定帮我们处理。(简化:管理对象的地方)
Java内部容器:List ArrayList Vector HashTable HashMap HashSet
Web容器:tomcat 管理Servlet的地方 还有Filter(过滤器)Listener(监听器)
Spring和SpringMVC:管理bena的地方 Spring(管理service和dao) SpringMVC(管理controller) 后者是前者的子容器
999. 什么是Spring?为什么使用Spring?
Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用
1)方便解耦,简化开发(高内聚、低耦合)
Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
2)AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
3)方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis等)的直接支持
4)降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低
1000. Spring有哪些特性?
方便解耦
AOP编程支持
声明事务支持
方便程序测试
方便集成各种优秀框架
降低JavaEEAPI使用难度
1001. Spring的重要特性有哪些?
1. Ioc/DI 控制反转/依赖注入
2. 面向切面编程
3. 声明式事务
1002. Spring常用的jar包有哪些?
1003. 程序中Spring的IoC(控制反转)主要作用是什么,如何体现Spring的IoC?
作用:IoC 完成的事情原先由程序员主动通过 new 实例化对象事情,转交给 Spring 负责. 最大作用:解耦
1004. 实现工厂设计模式【上机】
package factory.animalfactory;
public interface Animal {
void shout();
}
package factory.animalfactory;
public class Dog implements Animal {
@Override
public void shout() {
System.out.println("狗的声音");
}
}
package factory.animalfactory;
public class Monkey implements Animal {
@Override
public void shout() {
System.out.println("猴子的声音");
}
}
package factory.animalfactory;
public class AnimalFactory {
public static Animal createMonkey(){
return new Monkey();
}
public static Animal CreateDog(){
return new Dog();
}
}
package factory.animalfactory;
public class Test {
public static void main(String[] args) {
Animal dog = AnimalFactory.CreateDog();
dog.shout();
}
}