spring ctx.getBean()问题

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

HService h = (HService) ctx.getBean("service");

在myeclipse中执行单步调试 ,在运行到 ctx.getBean("service"); 这件按 f6

进入到AbstractApplicationContext 类 的 protected void destroyBeans() {
getBeanFactory().destroySingletons();
} 中 方法 。。

求解 为什么进入的是destroyBeans方法,而不是getBean方法???

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如果得到ctx.getBean("myBean")??

本人不才,请教个问题 项目中用的ibatis2.3+spring2.5+struts1.2 在action中可以用getWebApplicationContext()来获取bean对象 public class XXXAction extends DispatchActionSupport { UserService userService = (UserService) getWebApplicationContext().getBean("userService"); String jsonStr = userService.showList(parameterObj); } 我现在写了个servlet listener,listener又调用了一个timetask类 public class UserListener implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { timer.schedule(new UserTask(event.getServletContext()), new Date(),MIN * 60 * 1000); } } public class UserTask extends TimerTask { public void run() { //在这里如果得到ctx.getBean("myBean")?? } } 看了api http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/context/ApplicationContext.html ,尝试了几个applicationcontext类,都报异常而失败,郁闷

Spring代理getBean()只能返回接口类,否则报错的疑点

ApplicationContext ctx=new FileSystemXmlApplicationContext("WebContent\\WEB-INF\\spring.xml"); Vt vtb=(Vt)ctx.getBean("vt"); Mr mrb=(Mr) ctx.getBean("mr"); 两个类Mr和Vt是镜像的 public class Mr implements MindReader { private String thoughts; public void interceptThoughts(String thoughts) {System.out.println("hahaha"); this.thoughts=thoughts;} public String getThoughts() {return thoughts;} } public class Vt implements Thinker{ private String thoughts; public void thinkOfSomething(String thoughts) { this.thoughts=thoughts;} public String getThoughts() {return thoughts;} } 而且它们的接口也是镜像的 我实际调用的时候 Vt vtb=(Vt)ctx.getBean("vt"); ClassCastException报错,查了下资料代理默认创建必须要用接口类,换成Thinker vtb=(Thinker)ctx.getBean("vt"); 问题解决了。 但是Mr mrb=(Mr) ctx.getBean("mr");却没有任何异常可以正常使用,这是怎么回事?

Spring的BeanFactory与ApplicationContext的getBean方法有什么区别?

<p>最近做项目,做测试时,无意中遇到了一个问题:分别用BeanFactory和用ApplicationContext的getBean方法获取dataSource,用ApplicationContext获取成功,而用BeanFactory获取则报错</p> <p> </p> <pre name="code" class="java">public class DataSourceTest { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("resources/spring/applicationContext-hibernate.xml"); DataSource ds = (DataSource) ctx.getBean("dataSource"); System.out.println(ds); } } </pre> <p> 输出结果:<a href="mailto:org.springframework.jdbc.datasource.DriverManagerDataSource@1af33d6">org.springframework.jdbc.datasource.DriverManagerDataSource@1af33d6</a></p> <p> </p> <pre name="code" class="java">public class JdbcTemplateTest { static String delimiter = File.separator; static String classpath = "resources"+delimiter+"spring"+delimiter+"applicationContext-hibernate.xml"; public static void main(String[] args) { BeanFactory factory = new XmlBeanFactory(new ClassPathResource(classpath)); DataSource ds = (DataSource) factory.getBean("dataSource"); /** * 以上方法获得DataSource的Bean会报错:说找不到数据库的驱动类 * * */ System.out.println(ds); } }</pre> <p> 运行报错:</p> <p>Error creating bean with name 'dataSource' defined in class path resource [resources/spring/applicationContext-hibernate.xml]: </p> <p>Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; </p> <p>nested PropertyAccessExceptions (1) are:<br>PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; </p> <p>nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not load JDBC driver class [${jdbc.driverClassName}]; nested exception is java.lang.ClassNotFoundException: ${jdbc.driverClassName}</p> <p> </p> <p>我的配置文件位置如下所示:</p> <p>resouces包-----<br>                   |</p> <p>                   |</p> <p>               config子包:放数据库配置信息:jdbc.properties文件</p> <p>               spring子包:放spring的配置文件:applicationContext.xml</p> <p>两个文件的内容如下:</p> <p>jdbc.properties文件内容:</p> <p> </p> <p>jdbc.driverClassName=oracle.jdbc.driver.OracleDriver<br>jdbc.url=jdbc:oracle:thin:@localhost:1521:LOCALDEV<br>jdbc.username=ccic<br>jdbc.password=ccic</p> <p> </p> <pre name="code" class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" default-autowire="byName"&gt; &lt;!-- 属性文件读入 --&gt; &lt;bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;property name="locations"&gt; &lt;list&gt; &lt;value&gt;classpath:resources/config/jdbc.properties&lt;/value&gt; &lt;/list&gt; &lt;/property&gt; &lt;/bean&gt; &lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt; &lt;property name="driverClassName" value="${jdbc.driverClassName}"/&gt; &lt;property name="url" value="${jdbc.url}" /&gt; &lt;property name="username" value="${jdbc.username}" /&gt; &lt;property name="password" value="${jdbc.password}" /&gt; &lt;/bean&gt; &lt;/beans&gt;</pre> <p> </p> <p>问题:同样是读取同一个配置文件,Spring的BeanFactory与ApplicationContext的getBean方法有什么区别?为什么一个行一个不行呢?</p> <p>我只知道它们两个在延迟加载方面有区别:BeanFactory的getBean是延迟加载,ApplicationContext的getBean是在容器启动时就创建</p> <p> </p>

为什么我获得不了getBean("")方法

![图片说明](https://img-ask.csdn.net/upload/201910/13/1570937851_264773.png)

spring新手上路,关于数据库连接

实在不好意思,昨天把30分都用了,发现今天没分了。有机会下次补给大家了! xml配置如下: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.ncr.teradata.TeraDriver" /> <property name="url" value="jdbc:teradata://xx.xx.xx.xx/CLIENT_CHARSET=cp936,TMODE=TERA,CHARSET=ASCII,database=test" /> <property name="username" value="xx" /> <property name="password" value="xx" /> </bean> <bean id="dbConn" class="yxkh.common.TeradataConnection"> <property name="dataSource"> <ref local="dataSource"/> </property> </bean> [code="java"]import java.sql.Connection; public interface DatabaseConnection { public Connection getConnection(); }[/code] [code="java"]import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class TeradataConnection implements DatabaseConnection { private static Log log = LogFactory.getLog(TeradataConnection.class); private DataSource dataSource; public TeradataConnection() {} public void setDataSource1(DataSource dataSource) { this.dataSource = dataSource; } public DataSource getDataSource() { return dataSource; } @Override public Connection getConnection() { Connection conn = null; try { // 问题是否出在这儿,应该怎么使用? 谢谢! conn = dataSource.getConnection(); } catch (SQLException e) { log.error("连接数据库失败", e); } return conn; } }[/code] 测试代码 [code="java"]public class DataSourceTest { public static void main(String[] args) { Connection conn = null; ApplicationContext ctx = new ClassPathXmlApplicationContext("dataAccessContext.xml"); DatabaseConnection db = (DatabaseConnection) ctx.getBean("dbConn"); try { conn = db.getConnection(); System.out.println(conn.isClosed()); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }[/code] 具体报如下错误 2008-8-13 16:17:35 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1bf52a5: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1bf52a5]; startup date [Wed Aug 13 16:17:35 CST 2008]; root of context hierarchy 2008-8-13 16:17:35 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from class path resource [dataAccessContext.xml] 2008-8-13 16:17:36 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory 信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@1bf52a5]: org.springframework.beans.factory.support.DefaultListableBeanFactory@d6c16c 2008-8-13 16:17:36 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons 信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@d6c16c: defining beans [dataSource,dbConn]; root of factory hierarchy 2008-8-13 16:17:36 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons 信息: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@d6c16c: defining beans [dataSource,dbConn]; root of factory hierarchy Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [dataAccessContext.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1174) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:754) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:422) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) at test.DataSourceTest.main(DataSourceTest.java:14) Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.springframework.util.ClassUtils.forName(ClassUtils.java:242) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:383) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1135) ... 9 more [b]问题补充:[/b] to 小疯子: 非常感谢你的回答! 现在错误变成 2008-8-13 16:43:16 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1bf52a5: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1bf52a5]; startup date [Wed Aug 13 16:43:16 CST 2008]; root of context hierarchy 2008-8-13 16:43:16 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from class path resource [dataAccessContext.xml] 2008-8-13 16:43:21 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory 信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@1bf52a5]: org.springframework.beans.factory.support.DefaultListableBeanFactory@13c1b02 2008-8-13 16:43:21 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons 信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@13c1b02: defining beans [dataSource,dbConn]; root of factory hierarchy 2008-8-13 16:43:21 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons 信息: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@13c1b02: defining beans [dataSource,dbConn]; root of factory hierarchy Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [dataAccessContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) at test.DataSourceTest.main(DataSourceTest.java:14) Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.getDeclaredConstructor(Unknown Source) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877) ... 16 more Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool.impl.GenericObjectPool at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 22 more

service利用注解注入,会空指针异常。而用getBean方式则可以获取到service。

**spring配置文件如下:** <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:conf/config.properties</value> </list> </property> <property name="fileEncoding" value="utf-8" /> </bean> <import resource="spring-hibernate.xml" /> <!-- Import basic SpringMVC Resteasy integration --> <import resource="classpath:springmvc-resteasy.xml" /> <!-- 扫描文件 --> <context:component-scan base-package="com.sinopec.carlife" /> </beans> **service接口如下:** package com.sinopec.carlife.service.api; import java.util.List; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import com.sinopec.carlife.model.Region; @Path("/regions") @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) public interface RegionService { /** * 获取所有城市 * @return * @throws Exception */ @POST @Path("/all") public List<Region> findRegions() throws Exception; } **service实现类如下:** package com.sinopec.carlife.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.sinopec.carlife.dao.RegionDAO; import com.sinopec.carlife.model.Region; import com.sinopec.carlife.service.api.RegionService; @Service("regionService") public class RegionServiceImpl implements RegionService { @Autowired private RegionDAO regionDAO; @Override public List<Region> findRegions() throws Exception { return regionDAO.findRegions(); } } **junit测试如下:** package test.com.sinopec.carlife; import java.util.List; import javax.annotation.Resource; import junit.framework.TestCase; import org.junit.Test; import com.sinopec.carlife.model.Region; import com.sinopec.carlife.service.api.RegionService; public class RegionServiceTest extends TestCase { @Resource(name="regionService") private RegionService regionService; @Test public void testFindRegions() { try { /*ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring.xml"); regionService = (RegionService) context.getBean("regionService");*/ List<Region> regions = regionService.findRegions(); System.out.println(regions.size()); } catch (Exception e) { e.printStackTrace(); } } }

Spring bean注入 获取为空

<!--applicationContext.xml--> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/db_xyd?useUnicode=true&amp;amp;amp;amp;amp;amp;characterEncoding=utf-8-"> </property> <property name="username" value="root"></property> <property name="password" value="1234"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> <!-- org.hibernate.dialect.SQLServerDialect--> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>com/model/TDictionary.hbm.xml</value> </list> </property> </bean> <!-- dictionary --> <bean id="TDictionaryDAO" class="com.dao.TDictionaryDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="dictionaryAction" class="com.action.dictionaryAction" scope="prototype"> <property name="dictionaryDAO"> <ref bean="TDictionaryDAO" /> </property> </bean> </beans> package com.dao; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.ApplicationContext; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.model.TDictionary; public class TDictionaryDAO extends HibernateDaoSupport { private static final Log log = LogFactory.getLog(TDictionaryDAO.class); public void save(TDictionary transientInstance) { log.debug("saving TDictionary instance"); try { getHibernateTemplate().save(transientInstance); log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } } public static TDictionaryDAO getFromApplicationContext(ApplicationContext ctx) { return (TDictionaryDAO) ctx.getBean("TDictionaryDAO"); } } package com.action; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.dao.TDictionaryDAO; import com.model.TDictionary; import com.opensymphony.xwork2.ActionSupport; public class dictionaryAction extends ActionSupport { private int OID; private String willtake; private TDictionaryDAO dictionaryDAO; public String dictionaryAdd() { TDictionary dict=new TDictionary(); dict.setOID(OID); dict.setL_key(100000); dict.setVc_value(willtake); dict.setVc_caption("vc_caption"); //这里报空指针异常,是dictionaryDAO空 dictionaryDAO.save(dict); return "success"; } public TDictionaryDAO getDictionaryDAO() { return dictionaryDAO; } public void setDictionaryDAO(TDictionaryDAO dictionaryDAO) { this.dictionaryDAO = dictionaryDAO; } }

新手学习Spring 遇到 AOP的问题 ,非常苦恼 ,百度了两天用各种方法无果,恳请各位帮忙看看。

刚开始学习Spring,练习前置通知时出了问题。 原代码如下: 这是一个实现加减乘除的 ``` package com.atguigu.spring.aop; import org.springframework.stereotype.Component; @Component("arithmeticCalculator") public class ArithmeticCalculatorImpl implements ArithmeticCalculator { @Override public int add(int i, int j) { int result = i + j; return result; } @Override public int sub(int i, int j) { int result = i - j; return result; } @Override public int mul(int i, int j) { int result = i * j; return result; } @Override public int div(int i, int j) { int result = i / j; return result; } } ``` 这是Aspect ``` @Aspect @Component public class LoggingAspect { @Before("execution(public int com.atguigu.spring.aop.ArithmeticCalculator.*(int, int))") public void beforeMethod(JoinPoint joinPoint){ String methodName = joinPoint.getSignature().getName(); Object [] args = joinPoint.getArgs(); System.out.println("The method " + methodName + " begins with " + Arrays.asList(args)); } @After("execution(* com.atguigu.spring.aop.*.*(..))") public void afterMethod(JoinPoint joinPoint){ String methodName = joinPoint.getSignature().getName(); System.out.println("The method " + methodName + " ends"); } } ``` 配置如下: ``` <?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:aop="http://www.springframework.org/schema/aop" 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/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!-- 自动扫描的包 --> <context:component-scan base-package="com.atguigu.spring.aop"></context:component-scan> <!-- 使AspectJ --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> </beans> ``` 下面是测试 ``` public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-aop.xml"); ArithmeticCalculator arithmeticCalculator = (ArithmeticCalculator) ctx.getBean("arithmeticCalculator"); System.out.println(arithmeticCalculator.getClass().getName()); int result = arithmeticCalculator.add(11, 12); System.out.println("result:" + result); result = arithmeticCalculator.div(21, 3); System.out.println("result:" + result); } } ``` 然后问题就来了 。 。 。 。 。。 ``` Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'arithmeticCalculator' defined in file [D:\javaWebWorkpace\spring-2-0\build\classes\com\atguigu\spring\aop\ArithmeticCalculatorImpl.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.aspectj.util.LangUtil at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) at com.atguigu.spring.aop.Main.main(Main.java:11) Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.aspectj.util.LangUtil at org.aspectj.weaver.reflect.ReflectionWorld.<init>(ReflectionWorld.java:52) at org.aspectj.weaver.tools.PointcutParser.setClassLoader(PointcutParser.java:221) at org.aspectj.weaver.tools.PointcutParser.<init>(PointcutParser.java:207) at org.aspectj.weaver.tools.PointcutParser.getPointcutParserSupportingSpecifiedPrimitivesAndUsingSpecifiedClassLoaderForResolution(PointcutParser.java:168) at org.springframework.aop.aspectj.AspectJExpressionPointcut.initializePointcutParser(AspectJExpressionPointcut.java:221) at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:204) at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:197) at org.springframework.aop.aspectj.AspectJExpressionPointcut.checkReadyToMatch(AspectJExpressionPointcut.java:186) at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:166) at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:208) at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:262) at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:294) at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:118) at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:88) at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:372) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:335) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:421) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1558) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) ... 11 more ``` 实在搞不清楚哪里错了 , 我把项目发给别人运行(IDEA),运行结果不会报错。我是照着教学视频(教学用eclipse)敲的,在我这里运行(我也用eclipse) 就报错了。感觉也不是缺少什么jar包吧,那会是什么问题呢,恳求各路大神支招,帮帮小白,谢谢啦

Hibernate+Spring整合后自动建表问题

我测试了一个项目,初期没有问题,但是当我修改了自动生成的数据信息后发现,重新部署后数据仍然为原来的信息,接着我尝试了修改表名,重新部署后表名也和原来一样。 以下是配置信息: Hibernate: <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="jdbc.batch_size">20</property> <property name="hbm2ddl.auto">${hibernate.auto}</property> <property name="connection.autocommit">true</property> <!-- 显示sql语句 --> <property name="show_sql">true</property> <property name="format_sql">false</property> <property name="connection.useUnicode">true</property> <property name="connection.characterEncoding">UTF-8</property> <!-- 缓存设置 --> <property name="cache.provider_configuration_file_resource_path">classpath:hibernate-ehcache.xml</property> <property name="hibernate.cache.region.factory_class">org.hibernate.cache.SingletonEhCacheRegionFactory</property> <property name="hibernate.cache.use_query_cache">false</property> </session-factory> spring: <!-- 数据库连接池c3p0配置 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="jdbcUrl" value="${db.url}"></property> <property name="properties" ref="dataSourceProperties"/> <property name="driverClass" value="${db.driver}"></property> <property name="maxPoolSize" value="40"></property> <property name="minPoolSize" value="10"></property> <property name="initialPoolSize" value="10"></property> <property name="maxIdleTime" value="60"></property> <property name="idleConnectionTestPeriod" value="360" /> <property name="preferredTestQuery" value="select 1" /> <property name="acquireIncrement" value="5" /> <property name="acquireRetryAttempts" value="50" /> <property name="acquireRetryDelay" value="1000" /> <property name="breakAfterAcquireFailure" value="true" /> <property name="autoCommitOnClose" value="false" /> <property name="testConnectionOnCheckout" value="true" /> <property name="maxStatements" value="100" /> <property name="maxStatementsPerConnection" value="5" /> </bean> <!-- session工厂 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="configLocation" value="classpath:hibernate.cfg.xml"/> <property name="annotatedClasses"> <list> <value>com.gdms.model.rbac.Department</value> <value>com.gdms.model.rbac.Role</value> <value>com.gdms.model.rbac.Permission</value> <value>com.gdms.model.rbac.User</value> </list> </property> <!-- xml自动扫描方式配置的hibernate类文件 --> <property name="mappingLocations"> <value>classpath:com/gdms/model/*.hbm.xml</value> </property> </bean> 我自己做的几次测试 BUG信息:hibernate自动建表信息与配置文件和hbm配置信息不一致。 使用配置文件无法控制hibernate自动建表,而且无法找到hibernate自动建表的表名来源。 测试过程中要十分注意缓存问题 测试1:首先测试数据库连接是否还有用。 测试方法:修改数据库连接信息密码,使密码错误。 测试结果:测试显示配置文件仍然能够使用,并且配置数据库信息 测试2:不使用Hibernate自动建表 测试方法:将hibernate.atuo修改为None 测试结果:即使hibernate.atuo修改为None,仍然进行了自动建表。 目前结论,可以确定目前出现的bug与hibernate.atuo没有关联,因为部队Hibernate.auto设置任何信息,hibernate仍然会完成自动建表。 测试3:查看Init方法是否对建表数据产生影响 测试方法:修改数据 测试结果:修改数据没有用,数据仍然产生为以前数据。 测试4:查看修改信息是否对数据库中数据是否产生影响 测试方法:修改初始化方法的数据 测试结果:没有任务影响 目前结论:可以确定目前的建表与Hibernate没有关系,与项目中的init方法也没有关系,目前推测数据来源:一是存在数据缓存,二是存在某种异常处理手段。

spring 获取配置文件问题

比如一个test.jsp页面,用户直接请求该页面, 需要在该页面中获取到spring的service.xml中 定义的bean,该如何做呢? 不能在页面中用new ClassPathXmlApplicationContext()的方法,因为这会导致 bean被重复初始化,是不是有方法可以直接从session中获得service。xml文件呢。 [b]问题补充:[/b] 我的写的 :evil: <% ApplicationContext ctx=WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext()); IpolicemanJqServie jqs=(IpolicemanJqServie)ctx.getBean("jq.jqService"); System.out.print("jqs==ddd"+jqs.getjqSituation("8a89db6023034df00123081efd171903")); %> 这样就行了恩,谢谢

spring老报错Unable to instantiate Configuration.

spring+MyBatis动态SQL查询写了一个测试方法老报错 ![图片说明](https://img-ask.csdn.net/upload/201602/10/1455084090_3743.png) ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); EmpDao dao = ctx.getBean(EmpDao.class); 这个配置文件老读不出来,不知道哪里的问题 ![图片说明](https://img-ask.csdn.net/upload/201602/10/1455084022_107565.png) ![图片说明](https://img-ask.csdn.net/upload/201602/10/1455084067_370565.png)

spring data mongodb如何注入得到GridFsOperations对象?

代码如下: @Configuration public class SpringMongoConfig extends AbstractMongoConfiguration{ @Bean public GridFsTemplate gridFsTemplate() throws Exception { return new GridFsTemplate(mongoDbFactory(), mappingMongoConverter()); } @Override protected String getDatabaseName() { return "clouddisk"; } @Override @Bean public Mongo mongo() throws Exception { return new MongoClient("127.0.0.1"); } ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class); GridFsOperations gridOperations = (GridFsOperations) ctx.getBean("gridFsTemplate"); 问如何在dao层注入得到这个对象 ???

Spring的容器初始化以后怎么使用

现在在web.xml中配置了spring的监听器,这时当启动tomcat的时候,spring的容器 就会初始化,对spring的配置采用注解的方式,假设有一个@Component("quest")此时,spring的配置文件中只有一句 <context:component base-package="" /> 如果这时在测试类中需要用到quest对象,应该怎么获得quest这个bean 如果不在web.xml中配置监听器,而是手动获得spring容器,这个我会,应该是 ApplicationContext ctx = new ClassPathXmlApplicationContext("XXXX.xml"); 然后 Quest quest = (Quest)ctx.getBean("quest"); 现在就想让配置监听器有同样的作用,应该怎么做

ContextLoader.getCurrentWebApplicationContext();返回null怎么回事

<pre name="code" class="java">applicationContext.xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"&gt; &lt;!-- 数据源 --&gt; &lt;bean id="NNMiDS" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt; &lt;property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"&gt;&lt;/property&gt; &lt;property name="url" value="jdbc:oracle:thin:@10.27.125.61:1521:reporter"&gt;&lt;/property&gt; &lt;property name="username" value="openview"&gt;&lt;/property&gt; &lt;property name="password" value="openview"&gt;&lt;/property&gt; &lt;/bean&gt; &lt;!-- 数据源 --&gt; &lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt; &lt;property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"&gt;&lt;/property&gt; &lt;property name="url" value="jdbc:oracle:thin:@//147.16.17.98:1521/hpsm"&gt;&lt;/property&gt; &lt;property name="username" value="hndsPilot"&gt;&lt;/property&gt; &lt;property name="password" value="hndsPilot"&gt;&lt;/property&gt; &lt;/bean&gt; &lt;!-- 网络监控(NNMi) 性能数据 --&gt; &lt;bean id="sybaseDS" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt; &lt;property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver"&gt;&lt;/property&gt; &lt;property name="url" value="jdbc:sybase:Tds:10.27.124.221:9303/hpnnmi_perfspi"&gt;&lt;/property&gt; &lt;property name="username" value="DBA"&gt;&lt;/property&gt; &lt;property name="password" value="HP_IQ"&gt;&lt;/property&gt; &lt;/bean&gt; &lt;/beans&gt;</pre> <p> </p> <pre name="code" class="java"> // 获取spring配置文件地址 ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext(); // 获取数据源 try { ds = (DataSource) ctx.getBean("dataSource"); sybaseDs = (DataSource) ctx.getBean("sybaseDS"); my= (DataSource) ctx.getBean("NNMiDS"); } catch (Exception e) { e.printStackTrace(); }</pre> <p> 异常</p> <p>  这行报null怎么回事,我灰常不理解.请大家帮忙指点给出方案来,谢谢.</p>

spring通过注解配置beand的问题?求大神解决

这事测试主类 ``` package com.dw.spring.beans.annotation; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.dw.spring.beans.annotation.controller.UserController; import com.dw.spring.beans.annotation.repository.UserRepository; import com.dw.spring.beans.annotation.service.UserService; public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-annotation.xml"); TestObject to = (TestObject) ctx.getBean("testObject"); System.out.println(to); UserController userController = (UserController) ctx.getBean("userController"); System.out.println(userController); UserService userService = (UserService) ctx.getBean("userService"); System.out.println(userService); UserRepository userRepository = (UserRepository) ctx.getBean("userRepository"); System.out.println(userRepository); } } ``` 这是bean.xml文件 ``` <?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-4.1.xsd"> <!-- 指定spring IOC 容器扫描的包 --> <context:component-scan base-package="com.dw.spring.beans.annotation"></context:component-scan> </beans> ``` 这是异常 ``` 九月 10, 2016 3:27:17 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@7e6cbb7a: startup date [Sat Sep 10 15:27:17 CST 2016]; root of context hierarchy 九月 10, 2016 3:27:17 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from class path resource [beans-annotation.xml] Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [beans-annotation.xml]; nested exception is java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:414) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) at com.dw.spring.beans.annotation.Main.main(Main.java:12) Caused by: java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource at org.springframework.context.annotation.AnnotationConfigUtils.registerAnnotationConfigProcessors(AnnotationConfigUtils.java:140) at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.registerComponents(ComponentScanBeanDefinitionParser.java:150) at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:88) at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1427) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1417) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:174) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:144) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:100) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:510) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392) ... 14 more Caused by: java.lang.ClassNotFoundException: org.springframework.aop.TargetSource at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 25 more ```

jpa + Spring 2.5 表插入不了数据

![图片说明](https://img-ask.csdn.net/upload/201502/06/1423202189_351880.png) @Test public void runtest() { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); ProductService productService = (ProductService) ctx.getBean("productServiceImpl"); ProductType type = new ProductType(); type.setName("瑜伽用品"); type.setNote("好产"); type.setVisible(false); productService.save(type); }

Spring基于XML配置时出现报错,但是我的路径应该是对的呀,求大神指导

# 报错信息 ``` 信息: Loading XML bean definitions from class path resource [Appconfig.xml] Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [Appconfig.xml]; nested exception is java.io.FileNotFoundException: class path resource [Appconfig.xml] cannot be opened because it does not exist at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:343) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:223) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:194) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:258) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:128) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:94) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:133) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:620) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:521) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85) at com.config.RunTest.main(RunTest.java:11) Caused by: java.io.FileNotFoundException: class path resource [Appconfig.xml] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:329) ... 13 more ``` # 代码 ``` package com.config; import com.dao.UserDao; import com.service.UserService; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class RunTest { public static void main(String [] args) throws Exception{ ApplicationContext ctx = new ClassPathXmlApplicationContext("Appconfig.xml"); // ApplicationContext ctx=new AnnotationConfigApplicationContext(Appconfig.class); UserService userService=(UserService) ctx.getBean("userService"); userService.login("aaa","bbb"); UserDao userDao=(UserDao) ctx.getBean("userDao"); userDao.login("aaa","bbb"); } } ``` # XML文件代码 ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--通过类的全限定名来声明要创建的bean--> <bean id="userDao" class="com.dao.UserDaoImpl"></bean> <!--通过类的全限定名来声明要创建的bean--> <bean id="userService" class="com.service.UserServiceImpl"> <!--配置依赖注入--> <constructor-arg ref="userDao"></constructor-arg> </bean> </beans> ``` 感谢指导!!!

spring的MethodSecurityInterceptor这种设计方式安全吗

对业务方法的保护,spring security提供了MethodSecurityInterceptor这种拦截器进行处理。这样进行方法调用的时候就能够进行安全处理了。但问题是: 如果用户不是用spring的getbean方式获取对象的话,这种业务方法保护不久失效了吗? ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); bill obj = (bill)ctx.getBean("bill"); String get=obj.getBill(null); String CallAddfromSpring; try{ CallAddfromSpring=obj.addBill(null);//[b]这样调用是不成功的,因为通过MethodSecurityInterceptor禁止该用户访问add方法[/b] }catch (Exception e){ CallAddfromSpring=" CallAddfromSpring Exception"; } bill test=new BillImpl(); String DirectCallAdd=test.addBill(null);//[b]这样调用就是成功的。由于是直接生成的对象,我对add方法的保护失效了[/b]。 这样的安全机制算合理的吗?

spring data mongodb 操作保存文件出现couldn't save chunks

spring data mongodb 操作保存时为什么一直出现com.mongodb.MongoException: couldn't save chunks异常 代码如下 : public GridFSFile upload(InputStream inputStream,String fileName,String fileType){ Assert.notNull(inputStream,"输入流不能为空!"); Assert.notNull(fileName,"文件不能为空!"); Assert.notNull(inputStream,"输入流不能为空!"); ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class); gridOperations = (GridFsOperations) ctx.getBean("gridFsTemplate"); GridFSFile gridfs = gridOperations.store(inputStream, fileName,fileType); return gridfs; }

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐