Jersey 1.7 kommer med stöd för Spring 2.5, men projektet jag jobbar med för tillfället använder Spring 3.0. I denna artikel tänkte jag beskriva vad jag gjorde för att få dessa att funka tillsammans med Maven.
Läs mer >>
Tidigare beskrev Tommy Wassgren hur man kan använda profiles i Spring 3.1 för att definiera olika kör-profiler. T.ex. en profil för utveckling och en för produktion, vilka man enkelt kan växla mellan m.h.a. en jvm parameter. Kruxet är dock att 3.1 inte är släppt, så i väntan på detta vad gör man då om sitter i t.ex. Spring 2.5?
Läs mer >>
Chris Beams bloggar om nya features från milestone-release nummer ett av kommande Spring Framework 3.1. I den första artikeln visar han ”Bean Definition Profiles”. Ett användningsområde för profiler är att kunna scopa in och ut komponenter beroende på om du exekverar din applikation i utvecklingsmiljön eller i produktionsmiljön. Han exemplifierar med klassikern att använda olika datakällor för utveckling och produktion:
Läs mer >>
Läste just att SpringSource släppt version 1.0.0 Milestone 1 av Spring Social på SpringSource-bloggen.
Spring Social erbjuder bland annat templates för Twitter, Facebook, LinkedIn och TripIt och API:et verkar enkelt att använda:
FacebookTemplate facebook = new FacebookTemplate(accessToken);
facebook.updateStatus("Spring Social can also post to Facebook!");
Kul att det kommer en schysst javaintegration mot de sociala nätverken!
Nu när Spring Security 3 precis har släppts så gav jag mig på att uppgradera mitt projekt till den nya releasen.
Utan att läsa på så uppdaterade jag min pom.xml och belönades med ett trasigt bygge.
Ovanligt nog så har Spring släppt en release som inte är bakåtkompatibel, man har nämligen flyttat på de flesta klasser du använder, t ex Userdetails och GrantedAuthority.
I de flesta fall rör det sig om att bara ändra dina importer men det är ju inte en drop-in uppgradering.
Använder ni dessutom Spring Web Flow bör ni vänta med uppgraderingen eftersom Web Flow 2 har ett beroende på en flyttad Spring Security klass. Googlar man på det så ser man att folk har löst problemet genom att skriva en egen Web Flow patch, så det går att komma vidare om man vill.
Men som sagt, att uppgradera till Spring Sercurity 3 är lite krångligare än vad du kanske tror.
Detta inlägg ingår i serien Spring från början och kommer att behandla det transaktionsstöd som finns i springmodulen spring-tx.
Transaktioner är ett sätt att hålla ihop en eller flera operationer. Typiskt gäller principen ”allt eller inget” vilket betyder att alla operationer som ingår i en transaktion ska exekveras utan fel för att transaktionen ska gälla. Det vanligaste fallet är databastransaktioner där exempelvis flera skrivningar måste exekveras utan fel innan en så kallad commit genomförs. Ett exempel på detta är det klassiska bankkontoexemplet med överflyttning av pengar från ett konto till ett annat. En överflyttning sker genom att ett uttag först sker från ett konto och sedan insättning på ett annat konto. Bägge operationerna måste lyckas, annars ska transaktionen inte gälla det vill säga att man ”rullar tillbaka” transaktionen via en så kallad rollback.
Spring erbjuder på ett enhetligt sätt stöd för att kunna hantera transaktioner av olika slag som till exempel JTA, JDBC, Hibernate, JPA och JDO. Transaktionsstödet kan användas på två sätt, deklarativt eller programmatiskt. Det deklarativa sättet är det absolut vanligaste och innebär att metadata kring transaktionslogik inte ligger inbäddad i den faktiska javakoden utan enbart finns deklarerad ”utanför” javakoden via metadata. Metadata kan antingen bestå av externa XML-filer eller annotationer och påverkar alltså inte javakoden, den är så att säga non-intrusive.
Läs mer >>
Denna artikel ingår i serien Spring från början och kommer behandla det springstöd som finns för OSGi. Denna artikel är inte direkt en ”tutorial” utan ger främst en orientering till OSGi och Spring Dynamic Modules och gör ett försök till att peka på lämpliga användningsområden.
Vad är OSGi och vad är det bra för?
Förkortningen , vilket i vart fall inte hjälper mig att förstå vad OSGi egentligen är.
OSGi står tydligen för Open Service Gateway Initiative, men det har inte hjälpt någon att förstå vad det OSGi egentligen är får något. OSGi-standarden är helt kort en standard för modularisering av javaapplikationer.
OSGi används i allt från inbäddade system, mobiltelefoner till en flerskiktade webbapplikationer. Standarden har funnits i flera år och har tidigare främst används i inbäddade system. Det är först på senare år som OSGi har blivit aktuellt att använda i serverapplikationer. Den kanske mest kända applikationen som bygger på OSGi är den populära utvecklingsmiljön Eclipse, som använder OSGi i sitt plug-in system.
Mer konkret så specificerar standarden tre områden; paketering av moduler, tjänsteregister och modulers livscykler. Läs mer >>
EJB 3.0 är den nu gällande versionen av Java Enterprise Beans(EJB) arkitekturen som ingår i Java EE 5. Syftet med EJB 3.0 är att förbättra arkitekturen för EJB och minska komplexiteten för utvecklaren av EJB applikationer. Detta innebär tex följande förbättringar:
- Annoteringar, det finns ett gäng med annoteringar som man kan använda sig utav för att förenkla arbetet. Dessa annoteringar minskar antalet klasser och interface som man måste skapa och man behöver inte skapa någon deployment descriptor (om man inte vill).
- Defaulta värden, man skall slippa specifiera en massa vanliga förväntade beteenden och krav från EJB-containern.
- Inkapsling av beroenden och JNDI åtkomst via annoteringar och dependency injection (DI)
Businessinterfacet för en sessionsböna kan vara ett vanligt Java-interface, det behöver inte vara av typen EJBObject, EJBLocalObject eller javax.rmi.Remote
Home-interfacet behövs inte längre för sessionsbönor.
- Minskning av krav av användning av checked exceptions
- En interceptor funktionalitet finns för sessions- och message-driven-bönor.
- Entitetsbönor har fått en helt egen specifikation, Java Persistence API (JPA), är numera vanliga POJO’s.
Det finns ett par olika typer av EJB:er, sessionsbönor och message-driven-bönor. Sessionsbönorna kommer i två olika smaker, Stateless och Stateful. Entitetsbönorna har ju som sagt ersatts med JPA entiteter. Jag tänkte gå igenom dessa med små korta exempel. Läs mer >>
Detta inlägg ingår i serien Spring från början och kommer att behandla det springstöd som finns för SOAP-baserade webbtjänster i modulen Spring WS.
Läs mer >>
Detta inlägg ingår i serien Spring från början och kommer att behandla hur man med hjälp av Spring kan exponera och anropa distribuerade tjänster via olika teknologier såsom RMI, Hessian osv.
Läs mer >>