上一篇给大家分享了《Web 常见服务器错误代码》,这篇文章整理了一些Java spring的知识。
Sping入门
一些资源
- sping.io
- projects.spring.io/spring-framework
- 其他
Spring是什么
- Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但是现在已经不止于应用于企业应用
- 是一个轻量级的控制反转(IoC)和面向切面的容器框架
- 在Spring上开发应用更简单、方便、快捷,Spring带来了复杂的javaee开发的春天
Spring作用
- 容器
- 提供了多种技术支持(JMS MQ支持 UnitTest)
- AOP(事务管理、日志等)
- 提供了众多方便应用的辅助类(JDBC Template等)
- 对主流应用框架(Hibernate等)提供了良好的支持
- spring是一个一站式的框架;
- spring主要有两个思想:IOC和AOP;
- spring的主要的功能是整合其它框架;
适应范围
- 构建企业应用(SpringMVC+Spring+Hibernate/mybatis)
- 单独使用Bean容器(Bean管理)
- 单独使用AOP进行切面处理
- 其他的Spring功能,如:对消息的支持等
- 在互联网中应用
- 抽象类代表一个概念(例如:飞机),接口代表一种能力(会飞的)
ioc是反转控制;
- 指的就是组件和组件之间的关系并不是由任意一端来进行维护的,而有由第三方来维护的;
第一个Spring程序
- 创建工程,增加spring支持
- 在applicationContext.xml文件中定义bean
- 创建工厂
创建一个Spring工厂 BeanFactory factory=new ClassPathXmlApplicationContext("aplicationContxt.xml"); 在工厂重获对象,默认bean是单例模式 factory.getBean("name");
关于bean的配置
- bean
- null
- 集合
- map
- ref
- value
自动装配的方式(四种)
- 案例代码下载
default-autowire = byName byType constructor autoDetect
Annotation的配置方法
案例代码下载
控制层 业务层 持久层
action service dao
annotation的配置步骤
在配置文件中增加一个schema ,名子是context;
使用<context:componet-scan >标记来扫描包;
#这个配置可以自动扫描com.dao,service,com.action三个包中的类,并且实例化 <context:component-scan base-package="com.dao,service,com.action"></context:component-scan>
用于创建bean的注解
@Component 三层都可以 @Repository 写dao (持久层) eg: @Repository("DeptDao")(如果只是@Repository, 则factory.getBean("deptDaoImpl");中的"deptDaoImpl"和源类名不一样,第一个字母是小写) public class DeptDaoImpl implements DeptDao { ...... } 这样就可以在主函数里获得DeptDaoImpl类的实例: DeptDao dao = (DeptDao) factory.getBean("DeptDao"); @Service 写service (业务层 ) @Controller 写action(控制层)
用于控制bean的作用域注解,可将单例变成非单例
@Scope("prototype") eg: @Controller @Scope("prototype") public class DeptAction {...}
用于装配的注解,为类中的其他类属性实例化
@Autowired :建议使用 @Resource @Inject eg: @Autowired //实例化类DeptServise DeptServise deptService;