标签:autowired ase 3.2 htm framework process jpg 图片 开发
转:https://blog.csdn.net/lutianfeiml/article/details/51731219
Spring支持
<constructor-arg>
设置注入的属性 (可以通过index或者type注入)
<property>
设置注入的属性<bean id="car2" class="cn.itcast.spring3.demo5.Car2">
<!-- <property>标签中name就是属性名称,value是普通属性的值,ref:引用其他的对象 -->
<property name="name" value="保时捷"/>
<property name="price" value="5000000"/>
</bean>
<property>
标签中name就是属性名称,value是普通属性的值,ref:引用其他的对象
Spring2.5版本引入了名称空间p
p:<属性名>="xxx"
引入常量值p:<属性名>-ref="xxx"
引用其它Bean对象引入名称空间:
xmlns:p="http://www.springframework.org/schema/p"
xml:
<bean id="car2" class="cn.itcast.spring3.demo5.Car2" p:name="宝马" p:price="400000"/>
<bean id="person" class="cn.itcast.spring3.demo5.Person" p:name="童童" p:car2-ref="car2"/>
<bean id="" value="#{表达式}">
#{‘神回复:哈哈‘}
使用字符串#{topicId3}
使用另一个bean#{topicId4.content.toUpperCase()}
使用指定名属性,并使用方法#{T(java.lang.Math).PI}
使用静态字段或方法<bean id="car2" class="cn.itcast.spring3.demo5.Car2">
<property name="name" value="#{‘大众‘}"></property>
<property name="price" value="#{‘120000‘}"></property>
</bean>
<bean id="person" class="cn.itcast.spring3.demo5.Person">
<!--<property name="name" value="#{personInfo.name}"/>-->
<property name="name" value="#{personInfo.showName()}"/>
<property name="car2" value="#{car2}"/>
</bean>
<bean id="personInfo" class="cn.itcast.spring3.demo5.PersonInfo">
<property name="name" value="张三"/>
</bean>
<bean id="collectionBean" class="cn.itcast.spring3.demo6.CollectionBean">
<!-- 注入List集合 -->
<property name="list">
<list>
<value>童童</value>
<value>小凤</value>
</list>
</property>
<!-- 注入set集合 -->
<property name="set">
<set>
<value>杜宏</value>
<value>如花</value>
</set>
</property>
<!-- 注入map集合 -->
<property name="map">
<map>
<entry key="刚刚" value="111"/>
<entry key="娇娇" value="333"/>
</map>
</property>
<property name="properties">
<props>
<prop key="username">root</prop>
<prop key="password">123</prop>
</props>
</property>
</bean>
第一种写法:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean1.xml",”bean2.xml”);
第二种方法:
<import resource="applicationContext2.xml"/>
IoC容器装配Bean , 基于注解配置方式
Spring2.5 引入注解去定义Bean
@Component
描述Spring框架中Bean Xml:头文件中加入context路径:xmlns:context=http://www.springframework.org/schema/context
dsd-config.html
中复制过来相应的代码段<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- bean definitions here -->
</beans>
Key
中
<context:component-scan base-package="cn.itcast.spring3"/>
,告诉Spring要去扫描哪些包下的类。
@Component
注解等效的三个注解: @Repository
用于对DAO实现类进行标注 @Service
用于对Service实现类进行标注 @Controller
用于对Controller实现类进行标注
@Autowired
进行自动注入@Service
标注业务类@Repository
标注DAO@Autowired
默认按照类型进行注入
@Qualifier
指定注入Bean的名称 Qualifier
指定Bean名称后,注解Bean必须指定相同名称
Spring提供对JSR-250中定义@Resource
标准注解的支持@Resource
和@Autowired
注解功能相似
下面两个例子等价
@Autowired
@Qualifier("userDao")
private UserDao userDao;
@Resource(name="userDao")
private UserDao userDao;
@PostConstruct
: 初始化@PreDestroy
: 销毁
<bean>
配置的一样,默认作用范围都是singleton
Spring3.0以JavaConfig为核心,提供使用Java类定义Bean信息的方法
@Configuration
指定POJO类为Spring提供Bean定义信息,代表此类就是一个配置类。@Bean
提供一个Bean定义信息之前已经通过 component-scan标签
对配置类进行了扫描,故这里不需要再进行手动配置扫描了。
@Configuration
public class BeanConfig {
@Bean(name="car")
public Car showCar(){
Car car = new Car();
car.setName("长安");
car.setPrice(40000d);
return car;
}
@Bean(name="product")
public Product initProduct(){
Product product = new Product();
product.setName("空调");
product.setPrice(3000d);
return product;
}
}
正常整合Servlet和Spring没有问题的,但是每次执行Servlet的时候加载Spring配置以及加载Spring环境
解决办法:
ServletContext
中.ServletContext对象是全局的对象。服务器启动的时候创建的,在创建ServletContext的时候就加载Spring的环境。ServletContextListener
:用于监听ServletContext对象的创建和销毁的.spring-web-3.2.0.RELEASE.jar
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
WebApplicationContext applicationContext = (WebApplicationContext) getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
eg:
web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name></display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>cn.itcast.servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/userServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
public class UserServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"applicationContext.xml");*/
WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
UserService userService = (UserService) applicationContext
.getBean("userService");
userService.sayHello();
}
public class UserService {
public void sayHello(){
System.out.println("Hello Spring web...");
}
}
标签:autowired ase 3.2 htm framework process jpg 图片 开发
原文地址:https://www.cnblogs.com/zhanglijun/p/9083662.html