Spring
- Spring分为7部分
- spring Core(基础框架)
- spring context(上下文)
- spring DAO(JDBC抽象类和DAO)
- spring AOP
- spring web
- spring ORM(持久层框架 ex:mybatis)
- spring web MVC
- Spring三大核心
- 依赖注入(DI Dependecy Injection)
- 控制反转(IoC Inversion of Control) 为了高类聚低耦合
- 面向切面编程(AOP Aspect-Oriented Programming)
- scope四个值:默认单例
- java程序两个( prototype,prototype)
- web程序四个
- spring context
- 在maven中创建spring 可以有普通java(quickstark)项目 , 也可以有web(web-app)类
- 使用java类时 可以使用spring自带tomcat和jdk实现webx项目的功能
- 然后在main下创建web-app\WEB-INF\web.xml 然后打开Maven\plugins\tomcat7\tomcat7:run 即可
<packaging>war</packaging>
<build>
<plugins>
<!-- define the project compile level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!-- 添加tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<port>8888</port>
</configuration>
</plugin>
</plugins>
</build>
- 打开web项目时,先导入spring context依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.16.RELEASE</version>
</dependency>
- 在rosources下 使用 spring config 创建 "beans.xml"文件
- 中的scope下 默认为 singleton 单例模式(调用同一id创建的对象 相等) 也有prototype(调用同一id创建的对象 不等)
- 对pojo类中使用IoC(控制反转)时,无参初始化 ,通过set DI(依赖注入)时(如果没有无参构造方法 则报错),写法为
-
- 注意:name中内容为对象时,用ref定义,其他用value
<bean id="home" class="pojos.adress" p:province="湖北" p:city="武汉" p:area="武汉火车站"></bean>
<bean id="now" class="pojos.adress" p:province="湖北" p:city="武汉" p:area="武昌火车站"></bean>
<bean id="gf2" class="pojos.girlFriend" scope="singleton">
<property name="age" value="18"/>
<property name="look" value="刘亦菲"/>
<property name="money" value="8000"/>
<property name="home" ref="home"/>
<property name="now" ref="now"/>
</bean>
- 使用有参构造器时(可以无无参构造器) 有(name + value),(type + value),(index + value),(value),p 四种形式 也可以有参构造和混搭, 一般使用(name +value这种方法 不宜错 可以不按照顺序)
- 如果有参构造为5个参数,但pojo类没有五个参数的构造器时,则报错
//p:
xmlns:p="http://www.springframework.org/schema/p"//要在<beans>中加入这行代码才可以使用p(可随意定义)
<bean id="home" class="pojos.adress" p:province="湖北" p:city="武汉" p:area="武汉火车站"></bean>
<bean id="now" class="pojos.adress" p:province="湖北" p:city="武汉" p:area="武昌火车站"></bean>
<bean id="gf1" class="pojos.girlFriend" p:age="18" p:look="刘亦菲"
p:money="10000" p:home-ref="home" p:now-ref="now" scope="prototype" >
</bean>
// name + value
<bean id="gf6" class="pojos.girlFriend">
<constructor-arg name="age" value="18"/>
<constructor-arg name="look" value="马儿扎哈"/>
<constructor-arg name="money" value="30000"/>
<constructor-arg name="now" ref="now"/>
<constructor-arg name="home" ref="home"/>
</bean>
//type + value
<bean id="gf3" class="pojos.girlFriend">
<constructor-arg type="int" value="18"/>
<constructor-arg type="java.lang.String" value="古力娜扎"/>
<constructor-arg type="double" value="5000"/>
<constructor-arg type="pojos.adress" ref="now"/>
<constructor-arg type="pojos.adress" ref="home"/>
</bean>
//index + value
<bean id="gf4" class="pojos.girlFriend">
<constructor-arg index="0" value="18"/>
<constructor-arg index="1" value="古力娜扎"/>
<constructor-arg index="2" value="5000"/>
<constructor-arg index="3" ref="now"/>
<constructor-arg index="4" ref="home"/>
</bean>
//value
<bean id="gf5" class="pojos.girlFriend">
<constructor-arg value="18"/>
<constructor-arg value="古力娜扎"/>
<constructor-arg value="5000"/>
<constructor-arg ref="now"/>
<constructor-arg ref="home"/>
</bean>
千锋逆战班,武汉java逆战1903学习笔记