hello spring

1.spring的作用?
①.Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。
②.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
③.Spring能非常简单的帮我们管理数据库事务。
④.Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。
⑤.Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
⑥.Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。
2.spring的核心
IOC 控制反转 创建对象的控制权反向的转移给spring容器(BeanFactory)了 User u = new User();
DI 依赖注入 对象属性值通过配置文件注入
AOP 面向切面编程
3.Spring是一个轻量级的非侵入式的DI/IoC和AOP容器的开源框架
4.简单使用spring
1.导入所需的jar
lib包中找 : core context bean expression
第三方apache : commons-logging
2.创建spring配置文件
1)文件头
2)
<beans>
<bean id="名字" class="类全限定名" name="给当前类多个名字"
scope="指定当前类作用域 request session singleton prototype">没有属性</bean>

<!--控制反转-->
<bean id="名字" class="类全限定名">
<!--DI依赖注入,自动装配(name)-->
<!--属性注入 setter方法结合无参构造-->
<property name="属性名" ref=“和上面beanid值保持一致” ></property> <!--属性是对象类型-->
<property name="属性名" value=“” ></property> <!--属性是基本数据类型-->
<property name="属性名" ><!--属性是集合类型-->
<list>
<value>****</value>
<value>****</value>
</list>
<map>
</map>
</property>
<!--有参注入 有参构造 可通过索引下标给指定的属性赋值,还可以通过type属性赋值,还可通过name属性赋值 -->
<constructor-arg index="" ref="" ></constructor-arg>
</bean>
</beans>
3)测试
BeanFactory factory = new ClassPathXmlApplicationContext(“spring。xml”);
XXXBean bean = (XXXBean)factory.getBean("beanId");
bean.方法名();

5.spring 的aop
aop 面向切面编程
oop 面向对象编程 类 (最小的程序单元是类)

6.使用注解的基本步骤

spring配置文件中
1) 启用注解 <context:annotation-config></context:annotation-config>
2)设置注解扫描到包 <context:component-scan base-package="com.qyxy"></context:component-scan>

类上可以使用的注解
@Controller 控制层
@Service 业务层
@Repository 持久层
@Entity 实体bean
@Component 没法具体归类的时候使用

@Scope 单例(service,dao)/多例(controller)


类的属性上使用的注解
@Autowired 给对象属性装配值 默认情况下通过type自动装配值
@Qualifier(value="userDaoImpl") 通过id属性装配值

@Autowired 给基本属性装配值
@Value(value="10")

方法上可以使用的注解
@PostConstruct 在初始化bean时执行特定方法
@PreDestroy 在销毁bean之前执行特定的方法

aop 注解
spring配置中 添加<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
@Aspect 代表当前类是一个切面类
@Pointcut("execution(* com.qyxy.service.impl.*.*(..))")
public void pointcut() {}
@Before(value="pointcut()")
@After(value="pointcut()")
@Around(value="pointcut()")

spring的核心 IOC DI AOP
spring的注解

spring和其他框架的结合使用
spring+jdbc的结合 完成增删改查
spring+hibernate的结合
spring+hibernate+struts的结合

1.导入jar包

spring基础包:
aopalliance.jar 切面相关
aspectjweaver-1.6.8.RELEASE.jar 切面相关
commons-logging-1.2.jar spring依赖的第三方工具包
spring-aop-5.0.2.RELEASE-sources.jar 切面相关
spring-aop-5.0.2.RELEASE.jar 切面相关
spring-aspects-5.0.2.RELEASE-sources.jar 切面相关
spring-aspects-5.0.2.RELEASE.jar 切面相关
spring-beans-5.0.2.RELEASE-sources.jar 核心不可缺少
spring-beans-5.0.2.RELEASE.jar 核心不可缺少
spring-context-5.0.2.RELEASE-sources.jar 核心不可缺少
spring-context-5.0.2.RELEASE.jar 核心不可缺少
spring-core-5.0.2.RELEASE-sources.jar 核心不可缺少
spring-core-5.0.2.RELEASE.jar 核心不可缺少
spring-expression-5.0.2.RELEASE-sources.jar 核心不可缺少
spring-expression-5.0.2.RELEASE.jar 核心不可缺少

jdbc连接数据库及dbcp连接池的jar包:
commons-dbcp2-2.1.1.jar dbcp连接池
commons-pool2-2.4.2.jar dbcp连接池
mysql-connector-java-5.1.26-bin.jar mysql数据库查询

spring和jdbc结合使用的jar包:
spring-jdbc-5.0.2.RELEASE-sources.jar spring-jdbc结合使用
spring-jdbc-5.0.2.RELEASE.jar spring-jdbc结合使用
spring-tx-5.0.2.RELEASE-sources.jar spring-jdbc 事务管理
spring-tx-5.0.2.RELEASE.jar spring-jdbc 事务管理

hibernate最小需求jar包
antlr-2.7.7.jar 核心不可少
classmate-1.3.0.jar 核心不可少
dom4j-1.6.1.jar 核心不可少
geronimo-jta_1.1_spec-1.1.1.jar 核心不可少
hibernate-commons-annotations-5.0.1.Final.jar 核心不可少
hibernate-core-5.1.3.Final.jar 核心不可少
hibernate-jpa-2.1-api-1.0.0.Final.jar 核心不可少
jandex-2.0.3.Final.jar 核心不可少
javassist-3.20.0-GA.jar 核心不可少
jboss-logging-3.3.0.Final.jar 核心不可少

spring和hibernate结合的jar包
spring-orm-5.0.2.RELEASE-sources.jar spring-orm框架结合
spring-orm-5.0.2.RELEASE.jar spring-orm框架结合

struts使用的jar包
commons-fileupload-1.3.2.jar struts不可少
commons-io-2.4.jar struts不可少
commons-lang3-3.4.jar struts不可少
freemarker-2.3.23.jar struts不可少
javassist-3.20.0-GA.jar struts不可少
log4j-api-2.7.jar 日志管理
ognl-3.1.12.jar struts不可少
struts2-core-2.5.10.1.jar struts不可少
struts2-json-plugin-2.5.10.1.jar struts-json结合使用

struts和spring结合的jar包
struts2-spring-plugin-2.5.10.1.jar struts-spring结合使用
spring-web-5.0.2.RELEASE-sources.jar struts web应用
spring-web-5.0.2.RELEASE.jar struts web应用

jstl标签函数库需要的jar包
jstl.jar 页面使用jstl必须
standard.jar jstl依赖的jar

 

在使用aop切面切入action层时,默认会拦截action层数据。
解决方案:
struts.xml配置文件中添加以下配置,让struts始终考虑spring自动装载
<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true"></constant>

spring.xml中添加一下内容,
<!-- 定义切面使用自动代理模式 -->
<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>

posted @ 2017-12-20 17:21  小松鼠。  阅读(414)  评论(1编辑  收藏  举报